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这个单词的。

猜你喜欢

转载自blog.csdn.net/qq_63438888/article/details/127113447