1. 程式人生 > >vue 生命週期詳解

vue 生命週期詳解

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>

    </style>
</head>
<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
<body>
<div id="my">
   {{msg}}
    <button @click="update">更新資料</button>
    <button @click="destroy">銷燬元件</button>
</div>
</body>
<script>
    // Vue.filter('addZero',function (data) {
    //     return data<10?'0'+data:data;
    // })
    var vm = new Vue({
        el:"#my",
        data:{
            msg:'hallo world',
            flag:true,
            lists:[{name:'a1',type:'1'},{name:'a2',type:'2'},{name:'a3',type:'3'}],
            currentTime:Date.now()
        },
        methods:{
            update(){
                this.msg ="歡迎";
            },
            destroy(){
                this.$destroy();
            }
        },
        beforeCreate(){
            this.msg ="112233";
            alert('元件例項剛剛建立,還未進行資料觀察和事件配置');
            // 建立前狀態 el和data並未初始化
        },
        created(){  //常用 建立完畢狀態  完成data資料初始化 el沒有
            alert('例項已經建立完成,並且已經進行資料觀察和事件配置')
        },

        beforeMount(){  //掛載狀態  完成了el 和 data 的初始化
            alert('模板編譯之前,還未掛載')
        },
        mounted(){  //常用 掛載結束狀態 完成掛載
            alert('模板編譯後,已經掛載,此時才會有渲染頁面,才能看到頁面上資料顯示')
        },

        //元件進行操作

        beforeUpdate(){  //更新前狀態
            alert('元件更新前')
        },
        updated(){  //更新完成狀態
            alert('元件更新完成之後')
        },


        beforeDestroy(){ //銷燬前狀態
            alert('元件銷燬之前')
        },
        destroyed(){ //銷燬完成狀態
            alert('元件銷燬之後')
        }
    })
</script>
</html>