React面试题
1. React中有那些生命周期函数?
Constructor(props) 构造器
Render()渲染
componentWillMount() 渲染前 (不建议使用)
componentDidMount() 渲染后
componentWillReceiveProps() 接收props传值时
shouldComponentUpdate()控制组件是否更新
componentWillUpdate() 组件将要更新
componentDidUpdate() 组件已经更新
componentWillUnmount() 组件将要移除
2. React组件中的state 和 props 有何区别?*
- State 是一种数据结构,在组件构造器中定义, 是可读可写的, 用于组件内部数据的初始化和更新。 state中一般只放纯数据**
3. React中keys是什么,有什么作用?
Keys是列表通过map循环时给循环标签添加的属性,用于标记每一个循环的元素,在循环中要保证每一个循环标签keys属性值都不相同,在列表数据更新时, 通过keys可以快速高效的区分哪些元素是新的,然后确保视图更新的正确和高效
4. React组件之间通讯有哪些方式?
父组件向子组件传值: 父组件通过自定义属性向子组件传值,子组件props参数接收并处理
子组件向父组件传值: 父组件通过自定义属性向子组件传函数,子组件props接收函数并调用
非父子组件传值: 在全局作用域下定义变量, 通过在不同组件中对全局变量的赋值与取值来实现组件传值
5. react的优缺点
优点:
可以通过构造函数或类结构描述视图组件,
集成虚拟DOM(渲染性能好)
单向数据流(好处是更容易追踪数据变化排查问题)
一切都是component:代码更加模块化,重用代码更容易,可