【Vue框架】Vue2中关于生命周期函数详解—beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、destroyed

一、创建期间生命周期函数

生命周期函数:https://v2.cn.vuejs.org/v2/guide/instance.html
在这里插入图片描述

  • 创建时生命周期函数
    • beforeCreate
      • 1.beforeCreate是创建期间的第一个生命周期函数,会自动调用
      • 2.在beforeCreate生命周期函数中还不能使用data中的数据和methods中的方法
    • created
      • created生命周期函数中可以调用data中的方法和methods中的数据
    • beforeMount
      • beforeMount开始编译数据,但是当前数据只在内存中渲染,并没有真实的渲染到html页面上
    • mounted
      • mounted中获取到数据,内存中的数据真实的挂载到页面中,Vue实例创建完成
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        [v-cloak] {
            display: none;
        }
    </style>
</head>

<body>
    <div id="app" v-cloak>
		<h1 id="h1">{{msg}}</h1>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'Hello Vue'
            },
            methods: {
				show(){
					console.log('hello world')
				}
            },
			beforeCreate(){
				// 1.beforeCreate是创建期间的第一个生命周期函数,会自动调用
				// 2.在beforeCreate生命周期函数中还不能使用data中的数据和methods中的方法
				// console.log(this.msg);
				// this.show();
			},
			created(){
				// 1.created生命周期函数中可以调用data中的方法和methods中的数据
				console.log(this.msg);
				this.show();
			},
			beforeMount(){
				// 1.beforeMount开始编译数据,但是当前数据只在内存中渲染,并没有真实的渲染到html页面上
				console.log(document.getElementById('h1').innerText);
			},
			mounted(){
				// 1.mounted中获取到数据,内存中的数据真实的挂载到页面中,Vue实例创建完成
				console.log(document.getElementById('h1').innerText);
			}
        })
    </script>
</body>
</html>

二、运行期间生命周期函数

在这里插入图片描述
运行时生命周期函数

  • beforeUpdate
    • 在beforeUpdate周期函数中页面上的数据还是以前的,内存中的数据是最新的
  • updated
    • 在updated周期函数中页面上的数据和内存中的数据都是最新的
  • beforeDestroy
    • 在beforeDestroy生命周期函数中仍可以使用data与method方法
  • destroyed
    • 在destroyed生命周期函数已经销毁data与method方法
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        [v-cloak] {
            display: none;
        }
    </style>
</head>

<body>
    <div id="app" v-cloak>
		<h1 id="h1">{{msg}}</h1>
		<button @click="btn">修改</button>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'Hello Vue'
            },
            methods: {
				show(){
					console.log('hello world')
				},
                btn() {
					this.msg = "Vue";
                    console.log('btn事件');
                }
            },
			beforeCreate(){
				// 1.beforeCreate是创建期间的第一个生命周期函数,会自动调用
				// 2.在beforeCreate生命周期函数中还不能使用data中的数据和methods中的方法
				// console.log(this.msg);
				// this.show();
			},
			created(){
				// 1.created生命周期函数中可以调用data中的方法和methods中的数据
				console.log(this.msg);
				this.show();
			},
			beforeMount(){
				// 1.beforeMount开始编译数据,但是当前数据只在内存中渲染,并没有真实的渲染到html页面上
				console.log(document.getElementById('h1').innerText);
			},
			mounted(){
				// 1.mounted中获取到数据,内存中的数据真实的挂载到页面中,Vue实例创建完成
				console.log(document.getElementById('h1').innerText);
			},
			beforeUpdate(){
				// 1.在beforeUpdate周期函数中页面上的数据还是以前的,内存中的数据是最新的
				console.log('页面当中的值'+document.getElementById('h1').innerText);
				console.log('内存中的值'+this.msg);
			},
			updated(){
				// 1.在updated周期函数中页面上的数据和内存中的数据都是最新的
				console.log('updated-页面当中的值'+document.getElementById('h1').innerText);
				console.log('updated-内存中的值'+this.msg);
			},
			// 当关闭页面或关闭浏览器触发销毁函数
			beforeDestroy(){
				// 1.在beforeDestroy生命周期函数中仍可以使用data与method方法
			},
			destroyed(){
				// 1.在destroyed生命周期函数已经销毁data与method方法
			}
        })
    </script>
</body>
</html>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js,每一个组件都有一个生命周期,它是一个组件从创建到销毁的过程,Vue.js提供了一些钩子函数来让开发者在组件的生命周期不同阶段做不同的操作。 下面是Vue.js组件的生命周期钩子函数: - beforeCreate: 组件实例刚创建,组件的数据观测和事件机制都未初始化,无法访问到组件的数据和方法。 - created: 组件实例已经创建完成,组件的数据观测和事件机制已经初始化,但是组件还未挂载到页面上。 - beforeMount: 组件已经完成了模板编译,但是还未挂载到页面上。 - mounted: 组件已经挂载到页面上,并且已经渲染出来。 - beforeUpdate: 组件的数据发生了变化,但是页面还未更新。 - updated: 组件的数据发生了变化,并且页面已经更新完成。 - beforeDestroy: 组件即将销毁,此时还可以访问到组件的数据和方法。 - destroyed: 组件已经销毁,此时无法再访问组件的数据和方法。 在这些钩子函数,beforeCreatecreated阶段是组件初始化的阶段,可以在这里进行一些初始化操作,比如从服务端获取数据、初始化一些变量等。beforeMountmounted阶段是组件挂载的阶段,可以在这里进行一些DOM操作。beforeUpdateupdated阶段是组件数据更新的阶段,可以在这里处理一些数据更新的逻辑。beforeDestroy和destroyed阶段是组件销毁的阶段,可以在这里进行一些清理操作,比如清除定时器、取消事件监听等。 总之,通过钩子函数,我们可以在组件的不同生命周期阶段进行不同的操作,从而更好地控制组件的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值