热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

vue-生命周期

图中红色标红的函数生命周期函数中的this默认绑定到该vue实例,所以不要使用箭头函数,会出现this绑定错误。:可获取vue实例,data数据未绑定,el未挂载。所以不要在此函数内对数据做任何修改,因为数据undefined。
vue-生命周期

生命钩子函数/周期函数

图中红色标红的函数

created() {
    
}
mounted() {
    
}

生命周期函数中的this默认绑定到该vue实例,所以不要使用箭头函数,会出现this绑定错误。

生命周期各个阶段

beforeCreate

vue-生命周期
hello world
var vm=new Vue({ el:'#app', template:'
hello vue
' data:{ a:1 }, beforeCreate() { console.log('beforeCreate') // beforeCreate console.log(this) // Vue$3 console.log(this.$el) // undefined console.log(this.a) // undefined } })
vue-生命周期
beforeCreate()

: 可获取vue实例,data数据未绑定,el未挂载。所以不要在此函数内对数据做任何修改,因为数据undefined。

created

vue-生命周期
hello world
var vm=new Vue({ el:'#app', template:'
hello vue
' data:{ a:1 }, created() { console.log('created') // created console.log(this) //Vue$3 console.log(this.$el) // undefined console.log(this.a) // 1 } })
vue-生命周期
created()

: 数据已挂载,el未挂载,适合初始化数据。

beforeMount

vue-生命周期
  1. 没有 el 属性

    当没有el属性时,该函数不会被调用,只有当调用$mount函数时才会被调用。

var vm=new Vue({
    data:{
        a:1
    },
    beforeMount() {
      console.log('beforeMount') // 没有任何输出
    }
})

vm.$mount('#app')
// beforeMount 
  1. 没有 template 属性

    没有template属性时,el外部的html被当成template进行渲染

var vm=new Vue({
    el:'#app',
    data:{
        a:1
    },
    beforeMount() {
      console.log('beforeMount') // beforeMount
      console.log(this) // Vue$3
      console.log(this.$el) // 
hello world
console.log(this.a) // 1 } })
vue-生命周期
3. 有 template

属性

var vm=new Vue({
    el:'#app',
    template:'
hello vue
' data:{ a:1 }, beforeMount() { console.log('beforeMount') // beforeMount console.log(this.$el) // 注意!!
hello world
} })
vue-生命周期
beforeMount

: 渲染template,但el仍未挂载

mounted

vue-生命周期
var vm=new Vue({
    el:'#app',
    template:'
hello vue
' data:{ a:1 }, mounted() { console.log('mounted') // mounted console.log(this.$el) // 注意!!
hello vue
} })
vue-生命周期
vue-生命周期
mounted()

: 挂载el,将el标识的dom元素整个替换成template渲染成的dom元素。

beforeUpdate/updated

vue-生命周期

当绑定的数据变化时,先调用beforeUpdate函数,任何更新虚拟dom,重新渲染,然后调用updated。

注意

:只有绑定在模板里渲染的数据变动才会调用这两个函数。

var vm=new Vue({
    el:'#app',
    template:'
hello vue
', data:{ a:1 }, beforeUpdate() { console.log('beforeUpdate') }, updated() { console.log('updated') } }) vm.a=2 // 没有任何输出 var vm=new Vue({ el:'#app', template:'
hello vue!!!{{a}}
', data:{ a:1 }, beforeUpdate() { console.log('beforeUpdate') }, updated() { console.log('updated') } }) vm.a=2 // beforeUpdate updated
vue-生命周期

调用vm.$destory()后调用beforeDestroy(),移除监听器、数据解绑、销毁子实例后调用destroyed()


以上所述就是小编给大家介绍的《vue-生命周期》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 我们 的支持!


推荐阅读
  • 本文详细记录了腾讯ABS云平台的一次前端开发岗位面试经历,包括面试过程中遇到的JavaScript相关问题、Vue.js等框架的深入探讨以及算法挑战等内容。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • PHP 图形函数中实现汉字显示的方法
    本文详细介绍了如何在 PHP 的图形函数中正确显示汉字,包括具体的步骤和注意事项,适合初学者和有一定基础的开发者阅读。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 本文详细介绍了如何在 Node.js 环境中利用 Nodemailer 库实现邮件发送功能,包括环境配置、代码实现及常见问题解决方法。 ... [详细]
  • VC++ 文件操作实践案例
    本文介绍如何在Visual C++ 6.0环境下,通过下载的VC源代码实现文件的基本读写操作,并解决常见的运行错误。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • 本文探讨了在使用JavaMail发送电子邮件时,抄送功能未能正常工作的问题,并提供了详细的代码示例和解决方法。 ... [详细]
author-avatar
manly213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有