(2)getInitialState:为实例挂载初始状态,且每次实例化都会执行,也就是说,每一个组件实例都拥有自己独立的状态 。
(3)componentWillMount:执行componentWillMount,相当于Vue里的created+beforeMount,这里是在渲染之前最后一次更改数据的机会,在这里更改的话是不会触发render的重新执行 。
(4)render:渲染dom
render()方法必须是一个纯函数,他不应该改变
state,也不能直接和浏览器进行交互,应该将事件放在其他生命周期函数中 。如果
shouldComponentUpdate()返回
false,
render()不会被调用 。
(5)componentDidMount:相当于Vue里的mounted,多用于操作真实dom
【运行中阶段(5个)】
当组件mount到页面中之后,就进入了运行中阶段,在这里有5个钩子函数,但是这5个函数只有在数据(属性、状态)发送改变的时候才会执行
(1)componentWillReceiveProps(nextProps,nextState)
当父组件给子组件传入的属性改变的时候,子组件的这个函数才会执行 。初始化props时候不会主动执行
当执行的时候,函数接收的参数是子组件接收到的新参数,这个时候,新参数还没有同步到this.props上,多用于判断新属性和原有属性的变化后更改组件的状态 。
(2)接下来就会执行shouldComponentUpdate(nextProps,nextState),这个函数的作用:当属性或状态发生改变后控制组件是否要更新,提高性能,返回true就更新,否则不更新,默认返回true 。
接收nextProp、nextState,根据根据新属性状态和原属性状态作出对比、判断后控制是否更新
如果
shouldComponentUpdate()返回
false,
componentWillUpdate,
render和
componentDidUpdate不会被调用 。
(3)componentWillUpdate,在这里,组件马上就要重新render了,多做一些准备工作,千万千万,不要在这里修改状态,否则会死循环 相当于Vue中的beforeUpdate
(4)render,重新渲染dom
(5)componentDidUpdate,在这里,新的dom结构已经诞生了,相当于Vue里的updated
【销毁阶段】
当组件被销毁之前的一刹那,会触发componentWillUnmount,临死前的挣扎
相当于Vue里的beforeDestroy,所以说一般会做一些善后的事情,例如使定时器无效,取消网络请求或清理在
componentDidMount中创建的任何监听 。
![前端框架用vue还是react?清晰对比两者差异](http://img.jiangsulong.com/220413/003J42434-3.jpg)
文章插图
销毁组件vuevue在调用$destroy方法的时候就会执行beforeDestroy生命周期函数,然后组件被销毁,这个时候组件的dom结构还存在于页面结构中,也就说如果想要对残留的dom结构进行处理必须在destroyed生命周期函数中处理 。
reactreact执行完componentWillUnmount之后把事件、数据、dom都全部处理掉了,也就是说当父组件从渲染这个子组件变成不渲染这个子组件的时候,子组件相当于被销毁,所以根本不需要其他的钩子函数了 。react销毁组件的时候,会将组件的dom结构也移除,vue则不然,在调用destory方法销毁组件的时候,组件的dom结构还是存在于页面中的,this.$destory组件结构还是存在的,只是移除了事件监听,所以这就是为什么vue中有destroyed,而react却没有componentDidUnmount 。
状态集管理工具vuevuex是一个专门为vue构建的状态集管理工具,vue和react都是基于组件化开发的,项目中包含很多的组件,组件都会有组件嵌套,想让组件中的数据被其他组件也可以访问到就需要使用到Vuex 。
vuex的流程
- 将需要共享的状态挂载到state上:this.$store.state来调用
- 我们通过getters来创建状态:通过this.$store.getters来调用
- 使用mutations来更改state:通过this.$store.commit来调用
推荐阅读
- 腾讯会议电脑上怎么用
- 杜仲雄花茶的泡法,金银花茶的功效作用
- 菊花能用水煮着喝吗,孕妇能喝玫瑰花茶吗
- 如何防止服务器被入侵?
- 超实用的18个Java8日期处理的实践!建议收藏!
- 雪菊花茶功效与作用有哪些,菊花茶的功效有哪些
- 喝茉莉薄荷茶的好处有哪些,玫瑰花茶的副作用有哪些
- 不得不知道的一些docker知识,devops使用太频繁了
- 喝洛神花茶的功效与好处,洛神花茶的功效及其作用
- 用胖大海泡水次几个,玫瑰花茶泡水喝的功效