中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue的生命周期鉤子函數怎么應用

發布時間:2022-03-16 11:03:57 來源:億速云 閱讀:238 作者:iii 欄目:編程語言

本篇內容介紹了“vue的生命周期鉤子函數怎么應用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

在vue中,生命周期鉤子函數指的是當生命周期經歷創建和更新DOM的過程中,會在其中運行的一些函數;在這些函數內部可以創建和聲明vue組件。

本文操作環境:windows10系統、Vue2.9.6版,DELL G3電腦。

什么是vue的生命周期鉤子函數

每個 Vue 實例都經過一系列初始化步驟。從創建時設置數據到編譯模板,將實例裝載到DOM,最后在數據更改期間更新 DOM。這個過程被稱為 Vue 實例的生命周期,在默認情況下,當它們經歷創建和更新 DOM 的過程中,會在其中運行一些函數,在這些函數內部創建并聲明 Vue 組件,這些函數稱為生命周期鉤子。

Vue 有八種生命周期方法:

  • Before create

  • Created

  • Before mount

  • Mounted

  • Before update

  • Updated

  • Before destroy

  • Destroyed

本文將使用測試組件,它位于 src 文件夾內的 components 文件夾中。它應該看起來像這樣:

// src/components/Test.vue
<template>
 <div>
 </div>
</template>
<script>
export default {
 name: ‘Test’,
 props: {
  msg: String
 }
}
</script>
<! — Add “scoped” attribute to limit CSS to this component only →
<style scoped>
h4 {
 margin: 40px 0 0;
}
ul {
 list-style-type: none;
 padding: 0;
}
li {
 display: inline-block;
 margin: 0 10px;
}
a {
 color: #42b983;
}
</style>

beforeCreate()

這是在 Vue.js 中調用的第一個生命周期鉤子,它在 Vue 實例初始化后立即被調用。

<script>
export default {
  name: 'Test',
  beforeCreate() {
    alert('beforCreate hook has been called');
    console.log('beforCreate hook has been called');
  }
}
</script>

你可以在開發環境中運行程序來檢查界面。

npm run serve

注意,在加載組件之前,首先執行的是在生命周期鉤子中寫入的 alert 語句。這正是函數在 Vue 引擎創建應用程序組件之前調用的表現。此時正處在 beforeCreate 階段,尚未設置計算屬性、觀察者、事件、數據屬性和操作等內容。

created()

正如你所猜測的那樣,這是在 beforeCreated 鉤子之后立即調用的第二個生命周期鉤子。在這個階段,Vue 實例已經初始化,并且已經激活了計算屬性、觀察者、事件、數據屬性和隨之而來的操作。

<script>
export default {
  name: 'Test',
  data() {
    return {
      books: 0
    }
    },
  created() {
    alert('Created hook has been called');
    console.log(`books is of type ${typeof this.books}`);
  }
}
</script>

如果你運行該程序,你將會發現現在可以顯示數據類型。著在 beforeCreated 階段是不可能的,因為這時發生的激活還沒有發生。但是 Vue 實例在此階段尚未安裝,因此你無法在此處操作 DOM,元素屬性尚不可用。

beforeMount()

這是在 DOM 上掛載實例之前的那一刻,模板和作用域樣式都在這里編譯,但是你仍然無法操作DOM、元素屬性仍然不可用。

<script>
export default {
  beforeMount() {
    alert('beforeMount is called')
  }
}
</script>

mounted()

這是在 beforeMounted 之后調用的下一個生命周期鉤子。在安裝實例后會立即調用它。現在 app 組件或項目中的其他組件都可以使用了。現在可以進行數據適合模板、DOM元素替換為數據填充元素之類的操作了,元素屬性現在也可以使用了。

<script>
export default {
  mounted() {
    alert('mounted has been called'); 
   }
}
</script>

這是使用 Vue CLI 創建的項目的默認位置,因為正如我們在開頭看到的那樣,已經在 main.js 文件中完成了安裝。這就是你有可能無法使用其他掛鉤的原因,因為默認情況下已經為你安裝了實例。

beforeUpdate()

在這里對需要更新 DOM 的數據進行更改。在進行刪除事件偵聽器之類的更改之前,此階段適合任何邏輯。

<template>
 <div> {{hello}}
 </div>
</template>
<script>
 export default {
  name: 'Test',
  data() {
   return {
    books: 0,
    hello: 'welcome to Vue JS'
   }
 },
beforeUpdate(){
 alert('beforeUpdate hook has been called');
},
mounted(){
 this.$data.hello= 'lalalalallalalalalaalal';
 }
}
</script>

最初在 DOM 上有一個歡迎注釋,但是在掛載階段(可以操作DOM的地方),數據會發生變化,因此beforeUpdate 的 alert 會在更改之前出現。

updated()

在對 DOM 更新之后立即調用此生命周期鉤子,它在調用 beforeUpdate 掛鉤之后執行。可以在此處執行與 DOM 相關的操作,但不建議更改此鉤子內的狀態,因為 Vue 已經專門為此提供了平臺。

<template>
 <div> {{hello}}
 </div>
</template>
<script>
 export default {
  name: 'Test',
  data() {
   return {
    books: 0,
    hello: 'welcome to Vue JS'
   }
  },
beforeUpdate(){
 alert('beforeUpdate hook has been called');
},
updated(){
 alert('Updated hook has been called');
},
mounted(){
 this.$data.hello= 'lalalalallalalalalaalal';
 }
}
</script>

beforeDestroy()

調用此 Vue 生命周期鉤子的時機是在 Vue 實例被銷毀之前,實例和所有函數仍然完好無損并在此處工作。在這個階段你可以執行資源管理、刪除變量和清理組件。

<script>
export default {
name: 'Test',
 data() {
    return {
      books: 0
    }
  },
  beforeDestroy() {
    this.books = null
    delete this.books
  }
}
</script>

destroyed()

這是 Vue 生命周期的最后階段,其中所有的子 Vue 實例都已被銷毀,事件監聽器和所有指令之類的東西在此階段已被解除綁定。在對象上運行 destroy 之后調用它。

<script>
export default {
  destroyed() {
    this.$destroy() 
    console.log(this)
  }
}
</script>

當你運行程序并查看控制臺時,將看不到任何內容。

“vue的生命周期鉤子函數怎么應用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

安塞县| 融水| 常州市| 安阳县| 漾濞| 罗平县| 衡阳县| 马关县| 遵义县| 尚志市| 台北市| 陵水| 专栏| 普兰店市| 武定县| 镇康县| 文水县| 威远县| 通化县| 新建县| 大姚县| 二连浩特市| 平泉县| 鹤岗市| 界首市| 揭西县| 平原县| 福清市| 朝阳县| 科尔| 甘孜县| 水富县| 沙洋县| 泗阳县| 阳高县| 吴旗县| 漳浦县| 工布江达县| 乌鲁木齐市| 封丘县| 沿河|