简述项目开发笔记总结-1

简书项目开发笔记总结

一、react中render()函数什么时候执行?
1.当页面挂载的时候
2.当自身属性或者状态发生改变的时候
3.当父组件重新render时 ​​​​

二、shouldComponentUpdate()作用?
当父组件重新render(),而自身需要显示的内容没有变化时,可以在shouldComponentUpdate()中进行判断,返回false,这样可以提升react的性能

附:提升react性能的方式:
1.虚拟DOM
2.diff算法
3.key
4.setState的异步执行
5.shouldComponentUpdate()中判断子组件是否需要重新渲染
6.函数作用域改变放在constructor里进行(bind(this));

三、react建议我们以数据驱动的方式编写代码,尽量不要直接操作DOM,因此应尽量避免使用ref ​​​​

四、在React Fiber中,ref接收的是一个函数,函数会接收一个参数,例:(input) => this.input = input

五、执行setState()之后干了什么?

setState()方法通过一个队列机制实现state更新,当执行setState()的时候,会将需要更新的state合并之后放入状态队列,而不会立即更新this.state(可以和浏览器的事件队列类比)。如果我们不使用setState而是使用this.state.key来修改,将不会触发组件的re-render。如果将this.state赋值给一个新的对象引用,那么其他不在对象上的state将不会被放入状态队列中,当下次调用setState()并对状态队列进行合并时,直接造成了state丢失

六、在react fiber中,setState内是一个箭头函数,返回一个对象,自动接收的参数是prevState和props ​​​​

七、我们会把react16之后的版本成为react fiber ​​​​

八、什么是受控组件?什么是非受控组件?两者的联系和区别?

1.其值由React控制的输入表单元素称为“受控组件”
2.受控组件有两个特点:a. 设置value值,value由state控制,b. value值一般在onChange事件中通过setState进行修改
3.表单数据由 DOM 处理的组件为非受控组件
4.非受控组件有两个特点:1. 不设置value值,2. 通过ref获取dom节点然后再取value值

九、shouldComponentUpdate接收两个参数,nextState和nextProps

发布了15 篇原创文章 · 获赞 1 · 访问量 245

猜你喜欢

转载自blog.csdn.net/qiguoqi777/article/details/105280231
今日推荐