1. 程式人生 > >Vue2 生命周期 lifecycle

Vue2 生命周期 lifecycle

系列 上下 welcom jpg rip 技術分享 例如 log 創建

技術分享圖片

圖片出處 : 我的github博客https://github.com/songxtianx/Front-End-Blog

<!DOCTYPE html>
<html>
<head>
  <title>Welcome to Vue</title>
  <script src="https://unpkg.com/vue"></script>
</head>
<body><div id="app">{{msg}}</div>
<script>
var app = new
Vue({ el: #app, data: { msg: created1, }, beforeCreate() { console.log("beforeCreate ===", this.$el, this.msg, "loading事件"); }, created() { console.log("created ===", this.$el, this.msg, "初始化,實現函數自執行"); }, beforeMount() { this.msg = "mounted2"; console.log(
"beforeMount ===", this.$el, this.msg, " 創建vm.$el並將“el”替換為它。"); }, mounted() { setTimeout(() => { app.$destroy() }, 1000); console.log("mounted ===", this.$el, this.msg, " 發起後端請求,拿回數據,配合路由鉤子"); this.msg = "updated3"; }, beforeUpdate() { // this.msg = "updated3";
console.log("beforeUpdate ===", this.$el, this.msg, " 虛擬DOM重呈現和修補程序"); }, updated() { // this.msg = "updated3"; console.log("updated ===", this.$el, this.msg, " 更新"); }, beforeDestroy:function(){ this.msg = "destroyed4"; console.log("beforeDestroy===", this.$el, this.msg, " 確定要銷毀組件嗎?") }, destroyed:function(){ console.log("destroyed ===", this.$el, this.msg, " 觀察器、子組件和事件監聽器已拆卸。") } }) </script> </body> </html>

技術分享圖片

每個 Vue 實例在被創建時都要經過一系列的初始化過程——例如,需要設置數據監聽、編譯模板、將實例掛載到 DOM 並在數據變化時更新 DOM 等。同時在這個過程中也會運行一些叫做生命周期鉤子的函數,這給了用戶在不同階段添加自己的代碼的機會。

比如 created 鉤子可以用來在一個實例被創建之後執行代碼:


也有一些其它的鉤子,在實例生命周期的不同階段被調用,如 mounted、updated 和 destroyed。生命周期鉤子的 this 上下文指向調用它的 Vue 實例。

博主Github地址

Vue2 生命周期 lifecycle