// Vue 钩子函数示例代码
new Vue({
el: '#app',
data() {
return {
message: 'Hello Vue!'
}
},
// 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
beforeCreate() {
console.log('beforeCreate: 实例已创建,数据观测和事件还未开始');
},
// 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
created() {
console.log('created: 完成数据观测,属性和方法的运算,watch/event 事件回调');
},
// 在挂载开始之前被调用:相关的 render 函数首次被调用。
beforeMount() {
console.log('beforeMount: 模板编译完成,虚拟 DOM 创建完毕,未挂载到页面上');
},
// el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。
mounted() {
console.log('mounted: 模板渲染到页面中,DOM 操作可以在这里进行');
},
// 数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。
beforeUpdate() {
console.log('beforeUpdate: 数据更新,虚拟 DOM 还未更新');
},
// 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
updated() {
console.log('updated: 数据更新,虚拟 DOM 更新完毕');
},
// 实例销毁之前调用。在这一步,实例仍然完全可用。
beforeDestroy() {
console.log('beforeDestroy: 实例即将被销毁,清理定时器、事件监听等');
},
// Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
destroyed() {
console.log('destroyed: 实例已经销毁,所有资源释放');
}
});
data 还没有初始化,无法访问到 this.message。data 已经初始化,可以访问到 this.message,但 DOM 还没有生成。这些生命周期钩子可以帮助你在不同阶段执行特定的操作,确保应用的行为符合预期。
上一篇:vue菜鸟入门
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站