iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
自我挑戰組

從零開始Vuejs系列 第 14

[Day14] Vue生命週期

  • 分享至 

  • xImage
  •  

今天是第十四天,我想簡單分享一下Vue生命週期

每個Vue的實體從創建、初始化數據、編譯模板、掛載到DOM→渲染、更新→銷毀等等一系列流程,就像生命一樣從誕生到消逝,就是Vue的生命週期。
在這些執行階段中,會運行一些Lifecycle Hooks(生命鉤子函數),讓使用者可以在不同階段添加自己的Code

接者下面介紹一些Options: Lifecycle

#beforeCreate
會在實例初始化完成、props 解析之後、data()和 computed 等選項處理之前立即調用。

#created
當這個鉤子被調用時,以下內容已經設置完成:響應式數據(reactive data)、計算屬性(computed properties)、方法(methods)和偵聽器(watchers)。但是這個時候掛載階段還未開始,所以 $el 屬性還不能使用。

#beforeMount
當這個鉤子被調用時,組件已經完成了其響應式狀態的設置,但還沒有創建DOM 節點。它即將首次執行DOM 渲染過程。

#mounted
在元件被掛載之後調用

#beforeUpdate
在元件因為響應式狀態(reactive state)變更而更新DOM tree之前調用

#updated
元件的DOM tree已經更新,更新完畢時調用。

程式實作
這裡是HTML的部分

<div id="app">
    <input type="text" v-model="msg">
</div>

這裡是JS的部分

<script>
    const app = {
    data(){
        return{
            msg:'123456789'
            }
        },
        beforeCreate(){
            console.log('beforeCreate')
        },
        created(){
            console.log('created')
        },
        beforeMount(){
            console.log('beforeMount')
        },
        mounted(){
            console.log('mounted')
        },
        beforeUpdate(){
            console.log('beforeUpdate')
        },
        updated(){
            console.log('update')
        }
    }
    Vue.createApp(app).mount('#app')
</script>

執行後來看console的部分
將123456789進行更動,console的部分會跟著改變

更動前:
https://ithelp.ithome.com.tw/upload/images/20220926/20151006jAuiEiPtyS.png
更動後:
https://ithelp.ithome.com.tw/upload/images/20220926/20151006jJxirmMvcF.png

參考文件1網址:
https://vuejs.org/api/options-lifecycle.html
參考文件2網址:
https://medium.com/%E5%B0%8F%E5%BD%A5%E5%BD%A5%E7%9A%84%E5%89%8D%E7%AB%AF%E4%BA%94%E5%9B%9B%E4%B8%89/vue-js-vue%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F-fc971fac8298

Vue生命週期就分享到這邊,我們第十五天見


上一篇
[Day13] v-bind綁定圖片
下一篇
[Day15] Vue.js 與指令簡單介紹=>v-if ,v-else,v-else-if
系列文
從零開始Vuejs30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言