Vue生命周期函數(shù)

一 創(chuàng)建測試項目

vue init webpack-simple vuedemo

二 進(jìn)入demo目錄

cd vuedemo

三 安裝依賴

cnpm install

四 修改代碼

要修改的文件
├── src
│ ├── App.vue
│ ├── components
│ │ ├── Header.vue
│ │ ├── Home.vue
│ │ └── Lify.vue

App.vue

<template>
  <div id="app">
<v-home></v-home>
<hr>
  </div>
</template>

<script>
/*
import components
Local Registration components
use in template
*/

import Home from './components/Home.vue';

export default {
  name: "app",
  data() {
    return {
      msg:'hello vue world!',     
    };
  },
  components:{
    'v-home':Home
  },
  mounted(){
    console.log("i an a life  Cycle function ")
  }
};
</script>

<style>
</style>

Header.vue

<template>
    <div class="header">
        {{msg}}
    </div>
</template>

<script>
export default {
    data(){
        return {
            msg:'this is a head component'
        }
    },
    methods :{
        
    }
}
</script>

<style>
.header{
    background:#000;
    color: #fff;
}
</style>

Home.vue

<template>
    <!-- all content need in root-->
    <div id="home">
        <v-header></v-header>
        <h2>{{msg}}</h2>
        <br>
        <hr>
        <v-life  v-if="!flag"></v-life>
        <br>
        <hr>
        <button @click="flag=!flag">switch mount or destroy Lify components</button>
    </div>
</template>



<script>
import Header from './Header.vue'
import Life   from './Lify.vue'

export default {
    data(){
        return {
            msg:'i am home component!',
            flag: true
        }
    },
    methods :{
    },
    components:{
        'v-header':Header,
        'v-life': Life
    }
}
</script>

<style>

#home h2{
    color: red;
}
</style>

Lify.vue

<template>
    <!-- all content need in root-->
    <div id="home">
        <h2>this is a life Cycle show: -- {{msg}} </h2>       

        <button>run and change msg</button>
    </div>
</template>

<script>
export default {
    data(){
        return {
            msg:'i am a life Cycle component.'
        }
    },
    methods:{
        setMsg(){
            this.msg = 'i am the data after change!'
        }
    },
    beforeCreate(){
        console.log('before Instance create 1');
    },
    created(){
        console.log('after Instance create 2');
    },
    beforeMount(){
        console.log('before template Compile 3');
    },
    mounted(){//you can request data, Operat dom in mounted
        console.log('after template Compile 4');
    },
    beforeUpdate(){
        console.log('before data update 5');
    },
    updated(){
        console.log('after data update 6');
    },
    beforeDestroy(){//you can save data before destroy
        console.log('before Instance destroy 7');
    },
    destroyed(){
        console.log('after Instance destroy 8')
    }
}
</script>

五 運行

npm run dev


image.png

六 總結(jié)

1 溫習(xí)控件的生命周期及鉤子函數(shù)


七 參考

https://cn.vuejs.org/v2/guide/instance.html#%E5%AE%9E%E4%BE%8B%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E9%92%A9%E5%AD%90 《實例生命周期鉤子》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容