摘要: 在HTML当中,像 <input> , <textarea> , 和 <select> 这类表单元素会维持自身状态,并根据用户输入进行更新。但在React中,可变的状态通常保存在组件的状态属性中,并且只能用 setState() 方法进行更新。 非受控组件 非受控组件,即组件的状态不受React控制 阅读全文
posted @ 2020-11-27 12:23 GeorgeXu 阅读(3680) 评论(0) 推荐(0) 编辑
摘要: 高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件。基本上,这是从React的组成性质派生的一种模式,我们称它们为 “纯”组件, 因为它们可以接受任何动态提供的子组件,但它们不会修改或复制其输入组件的任何行为。 const EnhancedComponent = higherOr 阅读全文
posted @ 2020-11-27 12:21 GeorgeXu 阅读(3913) 评论(0) 推荐(0) 编辑
摘要: 为了解决跨浏览器兼容性问题,React中的事件处理程序将传递SyntheticEvent实例,该实例是React跨浏览器本机事件的跨浏览器包装器。这些综合事件具有与您惯用的本机事件相同的界面,除了它们在所有浏览器中的工作方式相同。 有点有趣的是,React实际上并未将事件附加到子节点本身。React 阅读全文
posted @ 2020-11-27 12:19 GeorgeXu 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1. 从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。2. 从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。 总之,恰当的优化不仅能够改善站点的用户体验并且能够节省相当的资源利用。 前端优化的途径有很多,按粒度大致 阅读全文
posted @ 2020-11-27 12:15 GeorgeXu 阅读(823) 评论(0) 推荐(0) 编辑
摘要: http是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。 https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器 阅读全文
posted @ 2020-11-27 12:14 GeorgeXu 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 选择器类型 1、ID #id 2、class .class 3、标签 p 4、通用 * 5、属性 [type="text"] 6、伪类 :hover 7、伪元素 ::first-line 8、子选择器、相邻选择器 三、权重计算规则 1. 第一等:代表内联样式,如: style=””,权值为1000。 阅读全文
posted @ 2020-11-27 12:13 GeorgeXu 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 1.父级div定义 height原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。优点:简单、代码少、容易掌握缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题 2,结尾处加空div标签 clear:both 原理:添加一个空div 阅读全文
posted @ 2020-11-27 12:10 GeorgeXu 阅读(89) 评论(0) 推荐(0) 编辑
摘要: JSON相对于XML来讲,数据的体积小,传递的速度更快些 · JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互 · XML对数据描述性比较好; · JSON的速度要远远快于XML 阅读全文
posted @ 2020-11-27 12:09 GeorgeXu 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1xx(临时响应) 100: 请求者应当继续提出请求。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。 2xx(成功) 200:正确的请求返回正确的结果 201:表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。 202:请 阅读全文
posted @ 2020-11-27 12:07 GeorgeXu 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 1.get传参方式是通过地址栏URL传递,是可以直接看到get传递的参数,post传参方式参数URL不可见,get把请求的数据在URL后通过?连接,通过&进行参数分割。psot将参数存放在HTTP的包体内 2.get传递数据是通过URL进行传递,对传递的数据长度是受到URL大小的限制,URL最大长度 阅读全文
posted @ 2020-11-27 12:05 GeorgeXu 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 借用构造函数继承,使用call或apply方法,将父对象的构造函数绑定在子对象上 原型继承,将子对象的prototype指向父对象的一个实例 组合继承 原型链继承的缺点 字面量重写原型会中断关系,使用引用类型的原型,并且子类型还无法给超类型传递参数。 借用构造函数(类式继承) 借用构造函数虽然解决了 阅读全文
posted @ 2020-11-27 12:04 GeorgeXu 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 浏览器渲染页面的一般过程: 1.浏览器解析html源码,然后创建一个 DOM树。并行请求 css/image/js在DOM树中,每一个HTML标签都有一个对应的节点,并且每一个文本也都会有一个对应的文本节点。DOM树的根节点就是 documentElement,对应的是html标签。 2.浏览器解析 阅读全文
posted @ 2020-11-27 12:03 GeorgeXu 阅读(735) 评论(0) 推荐(0) 编辑
摘要: ::after / <br> / clear: both 创建父级 BFC(overflow:hidden) 父级设置高度 BFC (块级格式化上下文),是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。 阅读全文
posted @ 2020-11-27 12:01 GeorgeXu 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 水平居中 行内元素: text-align: center 块级元素: margin: 0 auto position:absolute +left:50%+ transform:translateX(-50%) display:flex + justify-content: center 垂直居中 阅读全文
posted @ 2020-11-27 02:24 GeorgeXu 阅读(235) 评论(0) 推荐(0) 编辑
摘要: @support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写一套样式,如果不支持某个属性,你也可以提供另外一套样式作为替补。 calc() 函数用于动态计算长度值。 calc()函数支持 "+", "-", "*", "/" 运算; @media 查询, 阅读全文
posted @ 2020-11-27 02:19 GeorgeXu 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 有五种,分别是 State、 Getter、Mutation 、Action、 Modulestate => 基本数据(数据源存放地)getters => 从基本数据派生出来的数据mutations => 提交更改数据的方法,同步!actions => 像一个装饰器,包裹mutations,使之可以 阅读全文
posted @ 2020-11-27 02:17 GeorgeXu 阅读(1005) 评论(0) 推荐(0) 编辑
摘要: 三种方式第一种:vue异步组件技术 异步加载,vue-router配置路由 , 使用vue的异步组件技术 , 可以实现按需加载 .但是,这种情况下一个组件生成一个js文件。第二种:路由懒加载(使用import)。第三种:webpack提供的require.ensure(),vue-router配置路 阅读全文
posted @ 2020-11-27 02:15 GeorgeXu 阅读(1687) 评论(0) 推荐(0) 编辑
摘要: 总共分为8个阶段创建前/后,载入前/后,更新前/后,销毁前/后。创建前/后: 在beforeCreated阶段,vue实例的挂载元素$el和**数据对象**data都为undefined,还未初始化。在created阶段,vue实例的数据对象data有了,$el还没有。载入前/后:在beforeMo 阅读全文
posted @ 2020-11-27 02:12 GeorgeXu 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 使用vue开发时,在vue初始化之前,由于div是不归vue管的,所以我们写的代码在还没有解析的情况下会容易出现花屏现象,看到类似于{{message}}的字样,虽然一般情况下这个时间很短暂,但是我们还是有必要让解决这个问题的。首先:在css里加上[v-cloak] {display: none;} 阅读全文
posted @ 2020-11-27 02:11 GeorgeXu 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 用法:query要用path来引入,params要用name来引入,接收参数都是类似的,分别是this.$route.query.name和this.$route.params.name。url地址显示:query更加类似于我们ajax中get传参,params则类似于post,说的再简单一点,前者 阅读全文
posted @ 2020-11-27 02:09 GeorgeXu 阅读(1698) 评论(0) 推荐(0) 编辑