Vue实例生命周期

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title></title>
</head>

<body>
    <div id='app'>
    	<App></App>
    </div>
    <script type="text/javascript" src="vue.min.js"></script>
    <script type="text/javascript">


    	/*
		beforeCreate
		created
		beforeMount
		mounted
		beforeUpdate
		updated
		activated
		deactivated
		beforeDestroy
		destroyed
		

    	*/
    	Vue.component('Test',{
    		data(){
    			return {
    				msg:"hello world",
    				data:{}
    			}
    		},
    		template:`
			<div>
				<div>{{msg}}</div>
				<button @click = 'changerHanlder'>改变</button>

			</div>
    		`,
    		methods:{
    			changerHanlder(){
    				this.msg = this.msg +'尴尬';
    			}
    		},
    		beforeCreate:function(){
    			// 组件创建之前 
    			console.log(this.msg); //undefine
    		},
		created:function(){
			//组件创建之后
			console.log(this.msg);
			//使用该组件,就会调用created方法
			// 在created这个方法中可以操作后端的数据  数据驱动视图
			// 应用: 发起ajax请求

		},
		beforeMount:function(){
			// 挂载数据到 DOM之前会调用
			console.log(document.getElementById('app'));
		},
		mounted:function(){
			// 挂载数据到 DOM之后会调用 Vue作用以后的DOM  操作DOM
			console.log(document.getElementById('app'));
		},
		beforeUpdate:function(){
			// 在更新DOM之前 调用该钩子,应用:可以获取原始的DOM
			console.log(document.getElementById('app').innerHTML);
		},
		updated:function(){
			// 在更新DOM之后调用该钩子,应用:可以获取最新的DOM
			console.log(document.getElementById('app').innerHTML);

		},
		beforeDestroy:function(){
			console.log('beforeDestroy');
		},
		destroyed:function(){
			console.log('destroyed');
		},
		activated:function(){
			console.log('组件被激活了');
		},
		deactivated:function(){
			console.log('组件被停用了');
		}
    	})

    	var App = {
    		data(){
    			return {
    				isShow:true
    			}
    		},
    		// vue内置组件<keep-alive></keep-alive> 能在组件的切换过程中将状态保留在内存中。防止重复渲染DOM
    		template:`
			<div class = 'app'>

				<keep-alive>
					<Test v-if ='isShow'/>
				</keep-alive>
				<button @click = 'isShow =!isShow'>改变生死</button>

			</div>
    		`
    	}
    new Vue({
        el: '#app',
        data() {
            return {

            }
        },
        components: {
            App
        }
    });
    </script>
</body>
</html>
以下是官网给出的图示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值