react与vue的生命周期(新版)

react与vue的生命周期对比,之前学vue和react的时候,对他们两的生命周期总是搞混,这回总结对比一下

react:

# react生命周期函数
# 以下是按顺序排列

constructor(props) {                                        # 组件挂载之前
    super(props);
    this.state = {}

}

# Mounting 过程
componentWillMount() {                                    # 组件将要挂载
    console.log(componentWillUnmount);
}

render() {                                                  # 组件正在挂载
    console.log(render)
    return (
    <div>hello world</div>
    )
}

componentDidMount() {                                       #  组件挂载完成
    console.log(componentDidMount);
}


# Updation 数据更新过程
# state props 优先级为state父组件数据 但到了子组件中间是先执行子props
$ props 


# 下面这个生命函数是在组件中的       
componentWillReceiveProps() {                         # 组件中props数据改变时 在子组件渲染之间执行
    console.log(componentWillReceiveProps)
}

shouldComponentUpdate() {
    console.log(shouldComponentUpdate);                  # false的意思是 如果数据没有更新则下面的函数不会执行 提升性能
    return false;
        
}

componentWillUpdate() {
    console.log(componentWillUpdate);
}

# render(){}

componentDidUpdate() {
    console.log(componentDidUpdate);
}

$ state
shouldComponentUpdate() {
    console.log(shouldComponentUpdate);                  # false的意思是 如果数据没有更新则下面的函数不会执行 提升性能
    return false;
        
}

componentWillUpdate() {
    console.log(componentWillUpdate);
}

# render(){}

componentDidUpdate() {
    console.log(componentDidUpdate);
}


# Unmount
 componentWillUnount(){
        console.log(componentWillUnmount);
}

vue:

<template>
	<h2>当前求和为:{
         
  {sum}}</h2>
	<button @click="sum++">点我+1</button>
</template>

<script>
	import {ref,onBeforeMount,onMounted,onBeforeUpdate,onUpdated,onBeforeUnmount,onUnmounted} from vue
	export default {
		name: Demo,
		
		setup(){
			console.log(---setup---)
			//数据
			let sum = ref(0)

			//通过组合式API的形式去使用生命周期钩子
			onBeforeMount(()=>{
				console.log(---onBeforeMount---)
			})
			onMounted(()=>{
				console.log(---onMounted---)
			})
			onBeforeUpdate(()=>{
				console.log(---onBeforeUpdate---)
			})
			onUpdated(()=>{
				console.log(---onUpdated---)
			})
			onBeforeUnmount(()=>{
				console.log(---onBeforeUnmount---)
			})
			onUnmounted(()=>{
				console.log(---onUnmounted---)
			})

			//返回一个对象(常用)
			return {sum}
		},
		//通过配置项的形式使用生命周期钩子
		//#region 
		beforeCreate() {
			console.log(---beforeCreate---)
		},
		created() {
			console.log(---created---)
		},
		beforeMount() {
			console.log(---beforeMount---)
		},
		mounted() {
			console.log(---mounted---)
		},
		beforeUpdate(){
			console.log(---beforeUpdate---)
		},
		updated() {
			console.log(---updated---)
		},
		beforeUnmount() {
			console.log(---beforeUnmount---)
		},
		unmounted() {
			console.log(---unmounted---)
		},
		//#endregion
	}
</script>

总结:他们两个最大的不同就是react的生命周期几乎都以component开头,而新版vue在setup中以on开头且vue的生命周期没有component这个单词的。

经验分享 程序员 微信小程序 职场和发展