Vue实例的生命周期详解之从创建到销毁全过程
本篇文章给大家带来了关于vue的相关知识,其中主要介绍了关于vue实例的生命周期从创建到销毁的全过程,生命周期是每个Vue实例在被创建时都要经过一系列的初始化过程,下面一起来看一下,希望对大家有帮助。
【相关推荐:javascript视频教程、vue.js教程】
Vue的生命周期一直以来都是重中之重,虽然在实际开发中经常用到的就几个,但是你对生命周期的掌握程度决定着你写的程序好不好,并且这一块也一直是面试Vue部分的重要考点。
初识new Vue
关于new Vue 大家应该都知道,new关键字在js中是实例化一个对象。那么 new Vue 都干了啥?
其实,new Vue就是创建了一个Vue实例,Vue实例上是一个类,new Vue实际上是执行了Vue类的构造函数
创建Vue实例:
let vm = new Vue({ el: "#app", data: { name: 'beiyu' }, }
那么关于这个实例,从它初始化到销毁,都经历了什么呢?下面一起来看看:
Vue实例从创建到销毁
实例从创建到销毁的过程我们称作生命周期
生命周期的基本概念:
每个Vue实例在被创建时都要经过一系列的初始化过程。
例如:需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了使用者在不同阶段添加自己代码的机会。
1.创建之前—beforeCreate()
Vue实例对象创建之前
el属性和data属性均为空,常用于初始化非响应式变量
beforeCreate() { console.group("---创建前beforeCreate---") console.log('%c%s', 'color: red', 'el:' + this.$el) console.log('%c%s', 'color: red', 'data:' + this.$data) },
2.创建之后—created()
Vue实例对象创建之后
data属性存在,el属性为空,ref属性内容为空数组,常用于进行axios请求,页面的初始化等。但是这里不要请求过多,否则会出现长时间的白屏现象。
created() { console.group("---创建之后created---") console.log('%c%s', 'color: red', 'el:' + this.$el) console.log('%c%s', 'color: red', 'data:' + this.$data, this.$data.name) },
3.实例对象和文档挂载之前—beforeMount()
Vue实例对象和文档挂载之前,会去找对应的template
beforeMount() { // 这个时候$el属性是绑定之前的值 console.group("---挂载之前beforeMount---") console.log('%c%s', 'color: red', 'el:' + this.$el, this.$el.innerHTML) console.log('%c%s', 'color: red', 'data:' + this.$data, this.$data.name) },
4.实例对象和文档挂载之后—mounted()
Vue实例对象和文档节点挂载之后
el属性存在,ref属性可以访问
mounted() { console.group("---挂载之后mounted---") console.log('%c%s', 'color: red', 'el:' + this.$el, this.$el.innerHTML) console.log('%c%s', 'color: red', 'data:' + this.$data, this.$data.name) },
5.视图更新前—beforeUpdate()
View视图更新之前
响应式数据更新时调用
beforeUpdate() { console.group("---更新之前beforeUpdate---") console.log('%c%s', 'color: red', 'el:' + this.$el, this.$el.innerHTML) },
6.视图更新后—updated()
View视图更新之后
DOM更新完毕,不要在这里操作数据,可能陷入死循环
updated() { console.group("---更新之后updated---") console.log('%c%s', 'color: red', 'el:' + this.$el, this.$el.innerHTML) },
7.实例销毁之前—beforeDestroy()
Vue实例对象销毁之前|此时el和data全都还在,一般会在这一步进行销毁定时器、解绑全局事件、销毁插件对象等操作。
beforeDestroy() { console.group("---销毁之前beforeDestroy---") console.log('%c%s', 'color: red', 'el:' + this.$el, this.$el.innerHTML)},
8.实例销毁之后—destroyed()
Vue实例对象销毁之后|
destroyed() { console.group("---销毁之后destroyed---") console.log('%c%s', 'color: red', 'el:' + this.$el, this.$el.innerHTML)},
总结
vue2生命周期就是以上8个过程,在页面中我们来看一看,上面的打印结果:
从页面打开到完成一共经过四个生命周期,因为这里页面没有其他操作,所以剩下的四个生命周期没有对应的显示出来
【相关推荐:javascript视频教程、vue.js教程】
以上是Vue实例的生命周期详解之从创建到销毁全过程的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

可以通过以下步骤为 Vue 按钮添加函数:将 HTML 模板中的按钮绑定到一个方法。在 Vue 实例中定义该方法并编写函数逻辑。

Vue.js 中的 watch 选项允许开发者监听特定数据的变化。当数据发生变化时,watch 会触发一个回调函数,用于执行更新视图或其他任务。其配置选项包括 immediate,用于指定是否立即执行回调,以及 deep,用于指定是否递归监听对象或数组的更改。

Vue 多页面开发是一种使用 Vue.js 框架构建应用程序的方法,其中应用程序被划分为独立的页面:代码维护性:将应用程序拆分为多个页面可以使代码更易于管理和维护。模块化:每个页面都可以作为独立的模块,便于重用和替换。路由简单:页面之间的导航可以通过简单的路由配置来管理。SEO 优化:每个页面都有自己的 URL,这有助于搜索引擎优化。

在 Vue.js 中引用 JS 文件的方法有三种:直接使用 <script> 标签指定路径;利用 mounted() 生命周期钩子动态导入;通过 Vuex 状态管理库进行导入。

Vue.js 返回上一页有四种方法:$router.go(-1)$router.back()使用 <router-link to="/"> 组件window.history.back(),方法选择取决于场景。

Vue.js 遍历数组和对象有三种常见方法:v-for 指令用于遍历每个元素并渲染模板;v-bind 指令可与 v-for 一起使用,为每个元素动态设置属性值;.map 方法可将数组元素转换为新数组。

Vue 中 div 元素跳转的方法有两种:使用 Vue Router,添加 router-link 组件。添加 @click 事件监听器,调用 this.$router.push() 方法跳转。
