1.高阶函数:
如果一个函数A接收的参数是一个函数或者一个函数A被调用的时候返回值是一个函数,那么我们称这个函数A是一个高阶函数。
函数柯里化:一个函数A被调用的时候返回值是一个函数。
2.react生命周期(旧)
1)初始化阶段,挂载阶段
constructor()->componentWillMount()->render()->componentDidMount()
一般在componentDidMount()中做一些初始化的操作,比如:开启定时器、发送网络请求或者消息订阅
2)更新阶段
shouldComponentUpdate()->componentWillUpdate()->render()->componentDidUpdate()
3)卸载阶段
componentWilUnMount()
react生命周期(新)
1)初始化阶段,挂载阶段
constructor()->getDerivedStateFromProps()->render()->componentDidMount()
2)更新阶段
getDerivedStateFromProps()->shouldComponentUpdate()->render()->componentDidUpdate()
3)卸载阶段
componentWilUnMount()
3.
1)虚拟DOM中key的作用?
当状态中的数据发生变化后,react会生成新的虚拟DOM,会和旧的虚拟DOM进行对比,比较的规则是:
a.如果旧的虚拟DOM和新的虚拟DOM有相同的key:
如果虚拟DOM中内容没有发生改变,则使用之前的真实DOM;如果虚拟DOM中内容变了,则生成真实DOM,更换页面之前的真实DOM
b.如果旧的虚拟DOM和新的虚拟DOM没有相同的key:
根据新的数据生成新的真实DOM,随后渲染页面。
2)使用index作为key可能会引发的问题:
a.当对数据进行逆序增加,逆序删除等破坏顺序的操作,则会引起不必要的dom更新,效率低。
b.如果结构中有输入类的dom,则会引起错误的dom更新,界面会产生问题。
所以要选择数据的唯一标识作为key。
4.脚手架的目的:
简单,快速的编写项目,其中包含了所有需要的配置,以及相关的依赖,使用脚手架创建的项目具有模块化、组件化和工程化的特点。
模块化:以工程化的思想开发项目,功能可以复用。
组件化:页面中的某一个部分,可以复用。
工程化:将页面的结构、样式和动作分离。