react基础知识
1 虚拟dom和真实dom的比较
真实dom 更新缓慢 直接更新html 创建新的dom dom操作代价很高 消耗内存比较高 虚拟dom 更新较快 无法直接更新html 如果元素更新则直接更新jsx dom操作简单 消耗内存比较小
2 什么是react
react是face在2011年开发的js库,遵循组件的方法,开发复杂的web界面,2015年开源,但是有很强大的社区和插件支持
3 react的特点
- a 使用虚拟dom
- b 可以服务端渲染 next 优点seo搜索
- c 单项数据流,数据绑定
4 react的优点
- 渲染速度快通过虚拟dom进行局部更新
- 兼容好 通过虚拟dom可以跨浏览器兼容 还有强大的api支持,ie8也可以兼容
- 模块化 在编写代码的时候,可以编写独立的ui组件 提高了复用性
- 单向数据流
- 灵活性好,更接近js的写法
5 react和vue的区别
- vue的组件都是全局注册或者局部注册 react是import引入使用,更加的方便和灵活
- vue多了很多指令让模板可以使用更多的功能 而react只能使用jsx语法
- vue有计算和监听属性 而react只能自己使用一套逻辑
- vue 把html css 和js 放到一个文件里 而react都是使用js方式处理,更加灵活
- vue双向数据流 v-module双向数据绑定 父组件通过props传递数据更新子组件视图 react不太推荐props进行视图上的更新 react单项数据流,视图上的数据更新只能通过触发事件然后经过setstate更新
6 什么是jsx
jsx就是javascript XML 就是在js中可以写xml 更加的方便控制dom
7 什么是虚拟dom和diff算法
虚拟dom就是一个js对象是真实dom的一个副本 dom的属性变成对象的属性,当其中一个属性有变化时整个ui都会重新渲染 然后计算和之前的dom差异 再进行真实dom的更新
8 为啥浏览器不能读取jsx
浏览器只能读取js中的对象 不能读取jsx 只能通过转换器babal之类的转换为js对象
9 在react中es5和es6有啥区别
- require引入方式改成 import引入
- modeule exports 和 export defult
- class类的继承
- state不同
- props的不同
react组件的知识
1 react组件的作用
react应用的构建块 这些组件分成独立可以重用的部分 每个组件分成独立的模块 彼此独立不会影响其他的组件 分成 有状态组件和无状态组件,无状态组件 大部分就是ui组件不包含什么逻辑,也没有数据状态,就是函数组件
2 react中的render函数的作用
在react中每个组件必须要有一个render纯函数 返回一个react元素 返回值必须要在一个封闭的标记内
3 props是什么
props是react的属性 必须保持纯净 就是不可改变 从父组件传递到子组件 单向数据流 用于动态生成数据
4 react状态是什么
react 状态是组件的核心是数据的来源 状态是组件呈现和行为的对象 与props不同 他是可变的 并且创建动态交互组件 通过this.state访问
5 区分状态和props
条件 | state | props |
---|---|---|
父组件接受初始值 | 是 | 是 |
父组件可以改变值 | 否 | 是 |
组件设置默认值 | 是 | 是 |
父组件内部变化 | 是 | 否 |
设置子组件初始值 | 是 | 是 |
子组件内部变化 | 否 | 是 |