生命周期介绍
在一开始建立Vue
的实体,然後挂载到#app
就算是已经在使用元件,而这一连串的建立到被销毁,都有他的生命周期
。
Vue
本身就是以很多元件所组成的概念,举例来说最外层是一个app
元件,里面有Banner
、Footer
、Main
的子元件,当我在首页切换页面时,需要切换Main
子元件内容,就必须卸载、重新生成,这个过程就会触发生命周期。
周期图分为三阶段:
实体建立阶段
beforeCreate
:Vue
实体建立,状态事件还没初始化。
created
:资料建立完成。
beforeMount
:HTML
结构准备与DOM
节点绑定,尚未挂载。
mounted
:已经将DOM
元素挂载到画面上。
实体更新阶段
beforeUpdate
:当资料有更动,画面更新前。
Update
:当资料有更动,画面更新完成。
销毁阶段
beforeUnmount
:Vue
实体被销毁前。
unmounted
:Vue
实体被销毁完成。
<div id="app">
<button @click="isShowing = !isShowing">
<span v-if="isShowing">隐藏元件</span>
<span v-else>显示元件</span>
</button>
<hr>
<lifecycle v-if="isShowing"></lifecycle>
</div>
const app = Vue.createApp({
data() {
return {
isShowing: false
}
}
});
app.component('lifecycle', {
template: `<div>
<h4>{{ state }}</h4>
<input type="text" class="form-control" v-model="state">
</div>`,
data() {
return {
state: 'Vue data 资料状态'
}
},
beforeCreate() {
console.log(`beforeCreate! ${this.state}`);
},
created() {
console.log(`created! ${this.state}`);
alert(`created! ${this.state}`);
},
beforeMount() {
alert(`beforeMount! ${this.state}`);
},
mounted() {
alert(`mounted! ${this.state}`);
},
beforeUpdate() {
console.log(`beforeUpdate! ${this.state}`);
},
updated () {
console.log(`updated! ${this.state}`);
},
beforeUnmount() {
console.log(`beforeUnmount! ${this.state}`);
},
unmounted() {
console.log(`unmounted! ${this.state}`);
}
});
app.mount('#app');
这边使用v-if
来做示范,画面一开始时HTML
还未生成:
点击显示元件开始生命周期:
beforeCreate
之前还未能取得Data
资料,created
阶段已经能看到data
里面的资料"Vue data 资料状态"
。
点击确认後,来到mounted
阶段,DOM
元素准备要挂载到HTML
:
再次点击确认,HTML
已经挂载完毕:
此时我们在更改input
里面的文字,更动data
里的state
的值,此阶段为beforeUpdate
到Update
的生命周期:
最後销毁阶段beforeUnmount
到unmounted
,点击隐藏元件,销毁v-if
:
以上这些看完应该是头昏眼花,刚开始学习如果有要操作DOM
的元素,建议使用mounted
,如果使用created
会产生一些问题。
如有错误,欢迎指教。
<<: [DAY17] 介绍 Azure Machine Learning SDK
>>: [Day 20] 机器学习金手指 - Auto-sklearn
渐层背景 背景(background)除了可以用图片、单色填满之外,也可以设定为渐层。其属性值为li...
随着专案前端、後端等等各个架构与部署都准备完成,Side project 就差最後一步骤,将自己或别...
前言 Tableau Desktop 版本更新非常快速,平均一季会推出一个新版本,每个版本之间在介面...
Colab连结 早期刚学深度学习时,我们 AlexNet 学到了几个基本的 CNN, Dense, ...
前言 工程师听起来就像工具人一样,每天都有追不完的技术,赶不完的专案,但如果我们不保持好奇心跟创意,...