1、React 是一个用于构建用户界面的 JavaScript 库
2、state 和 props 的区别?
state 和 props 主要的区别在于 props 是不可变的,它们总是在整个应用中从父组件传递到子组件,
子组件永远不能将 prop 送回父组件,这有助于维护单向数据流。
而 state 可以根据与用户交互来改变
3、react理解
React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,
然后渲染 UI,让用户界面和数据保持一致。React 里,只需更新组件的 state,
然后根据新的 state 重新渲染用户界面(不要操作 DOM) state相当于vue下data中变动的数据
4、react中ref作用?
为DOM元素增加ref属性时,ref会传递一个参数给回调函数
5、react中key值作用?
react 中的key 属性是一个特殊的属性,是唯一的,只能在map( )的回调函数中使用key
6、react创建组件有几种方式?
①.函数式定义的无状态组件
②.es5原生方式React.createClass定义的组件
③.es6形式的class *** extends React.Component定义的组件
7、三者创建组件的区别?
函数是无状态组件,只进行渲染,不进行组件内容值的变动,es5作为了解,es5,es6有状态组件,
可以进行UI和数据的变更,无状态组件性能比有状态组件的性能高,如果是
无状态变更的写在函数组件中,有状态变更的写在class声明的组件中
8.react生命周期
1)componentWillMount 在渲染前调用,在客户端也在服务端。(初始化阶段)
2)componentDidMount : 在第一次渲染后调用,只在客户端。之后组件已经生成了对应的DOM结构,可以通
过this.getDOMNode()来进行访问。 (初始化阶段)
3)如果你想和其他JavaScript框架一起使用,可以在这个方法中调用setTimeout, setInterval,或者发送
AJAX请求等操作(防止异步操作阻塞UI)。 (初始化阶段)
4)componentWillReceiveProps 在组件接收到一个新的 prop (更新后)时被调用。这个方法在初始化
render时不会被调用。(运行状态阶段)
5)shouldComponentUpdate 返回一个布尔值。在组件接收到新的props或者state时被调用。在初始化时或者
使用forceUpdate时不被调用。可以在你确认不需要更新组件时使用。
(运行状态阶段)
6)componentWillUpdate在组件接收到新的props或者state但还没有render时被调用。在初始化时不会被调
用。(运行状态阶段)
7)componentDidUpdate 在组件完成更新后立即调用。在初始化时不会被调用。 (运行状态阶段)
8)componentWillUnmount在组件从 DOM 中移除之前立刻被调用。(销毁阶段)