组件的生命周期
挂载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| constructor() 最早执行,状态的初始化 static getDerivedStateFromProps() 更新派生状态 不常用 render() 渲染组件的内容 componentDidMount() 作用: 1.拿到节点,做dom操作 2.父组件调用子组件里的方法 let bs =React.createRef(); bs.current.子组件的方法名() //父组件调用子组件里的方法
这个挂载阶段常用的钩子函数有三个 constructor,render,componentDidMount 执行次序 constructor render componentDidMount
|
更新阶段钩子函数
1 2 3 4 5 6 7 8 9 10 11
| static getDerivedStateFromProps() shouldComponentUpdate() 可以优化组件渲染的次数 //这个钩子函数会返回布尔值 true 组件才渲染 false 组件不渲染 shouldComponentUpdate(nextProps,nextState){ //优化渲染的次数 return this.props.flag!==nextProps.flag } (PureComponent也可以优化渲染的次数) render() getSnapshotBeforeUpdate() 一定要和componentDidUpdate一起使用 //dom更新之前的状态叫快照(snapshot) 在更新之前获取快照 componentDidUpdate() // 监控组件里数据变化
|
卸载阶段
1 2
| componentWillUnmount() 主要清理资源和善后的工作
|
建立脚手架项目
1 2 3 4 5 6 7 8 9 10
| npx create-react-app 项目的名字
项目结构 readme.md 项目的说明文件 package.json npm包的管理文件 .gitignore 上传时候忽略的文件 src 源码目录 public 项目的静态资源文件 node_modules 项目的依赖文件
|
安装ES7+ React/Redux/React-Native snippets插件
rcc 产生一个类组件
rfc 产生一个函数组件