全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Vue.js实例方法之生命周期详解

本文主要给大家介绍的是关于Vue.js实例方法之生命周期的相关内容,分享出来供大家参考学习,学习的朋友们下面来一起看看详细的介绍:

一、$mount()挂载方法

$mount是用来挂载扩张的。如果 Vue 实例在实例化时没有收到 el 选项,则它处于“未挂载”状态,没有关联的 DOM 元素。可以使用 vm.$mount() 手动地挂载一个未挂载的实例。

比如我们扩张了一个全局组件,通过$mount手动的挂载到DOM上,也就生成了一个Vue实例。

<div id="#app"></div>

扩张一个全局组件,并且挂载到DOM上。

//扩张全局的组件
var navBar = Vue.extend({
 template: `<div>{{ title }}</div>`,
 data(){
 return {
  title: 'Vue 扩展的全局组件'
 }
 },
 mounted(){
 console.log('挂载上了')
 }
})

//使用全局扩张的组件,挂载到id为#app的DOM上(会替换#app)
var vm = new navBar().$mount('#app');

//或者
var vm = new navBar({el: "#app"})

如果没有提供 elementOrSelector 参数,模板将被渲染为文档之外的的元素,并且必须使用原生DOM API把它插入文档中。

//在文档之外渲染,并且挂载
var navbar = new navBar().$mount()
document.getElementById('app').appendChild(navbar.$el)

二、$destroy()销毁方法

作用: 完全销毁一个实例。

Vue 实例销毁后调用。调用后,Vue 实例相关的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

<div id="app">

</div>
<button onclick="destroy()">销毁</button>

在组件中挂载destroyed生命周期钩子

var navBar = Vue.extend({
 template: `<div>
   <div>{{ title }}</div>
   <h2>{{ num }}</h2>
   <button @click = 'add'>add</button>
  </div>`,
 data(){
 return {
  title: 'Vue 全局扩展组件',
  num: 10
 }
 }
 destroyed(){
 console.log('销毁了')
 },
 methods: {
 add(){
  this.num++
 }
 }
})

//使用全局扩张的组件,挂载到id为#app的元素上
var vm = new navBar().$mount('#app');

//销毁
function destroy(){
 //点击按钮,销毁vm实例,控制台会输出‘销毁了',当再次点击的时候不会输出,而且点击add按钮,数量也不会改变,说明已经销毁了
 vm.$destroy()
}

三、$forceUpdate()更新方法

该方法是迫使Vue实例重新渲染。注意:它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

看代码:

<button onclick="reload()">刷新</button>
//同样的,为了看到是否重新更新了数据,即是否执行了reload方法,我们在实例中添加updated选项
updated(){
 console.log('数据重新渲染了')
}

//三、更新数据方法
function reload(){
 vm.$forceUpdate()
}

点击更新按钮,控制台打印出updated钩子中的输出,说明Vue实例重新渲染了。


四、$nextTick()数据修改方法

参数: {Function} [callback]

该方法是构造器data中的数据被修改后触发,相当于updated钩子函数,但还是有区别的:它是在updated钩子函数执行完之后执行其里边的回调函数。也就是将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。

methods: {
 add(){
  //更改数据
  this.num++
  this.$nextTick(function(){
   console.log('DOM现在更新了')
  })
 }
},
updated(){
 console.log('数据更新成:'+this.num)
}

通过控制台的打印结果,可以看到,当数据改变时,updated钩子早于$nextTick中的回调。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。


# vue实例生命周期  # vue实例的生命周期  # vue.js生命周期  # Vue v-bind动态绑定class实例方法  # VUE项目中加载已保存的笔记实例方法  # vue项目中引入Sass实例方法  # 用vue.js组件模拟v-model指令实例方法  # Vue+axios+WebApi+NPOI导出Excel文件实例方法  # 详解vue 实例方法和数据  # Vue常用实例方法示例梳理分析  # 回调  # 文档  # 插槽  # 的是  # 是在  # 也会  # 相关内容  # 是有  # 也就  # 上了  # 如有  # 把它  # 朋友们  # 给大家  # 如果没有  # 可以看到  # 将被  # 可以使用  # 这篇文章  # 谢谢大家 


相关文章: 制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何快速登录WAP自助建站平台?  建站之星备案流程有哪些注意事项?  如何通过虚拟主机空间快速建站?  如何在Golang中使用replace替换模块_指定本地或远程路径  如何通过商城自助建站源码实现零基础高效建站?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  建站之星图片链接生成指南:自助建站与智能设计教程  如何在IIS管理器中快速创建并配置网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  制作农业网站的软件,比较好的农业网站推荐一下?  免费视频制作网站,更新又快又好的免费电影网站?  如何在新浪SAE免费搭建个人博客?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  c# 在ASP.NET Core中管理和取消后台任务  如何快速搭建高效服务器建站系统?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  已有域名能否直接搭建网站?  婚礼视频制作网站,学习*后期制作的网站有哪些?  广德云建站网站建设方案与建站流程优化指南  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  创业网站制作流程,创业网站可靠吗?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何快速打造个性化非模板自助建站?  深圳网站制作的公司有哪些,dido官方网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  建站之星如何快速解决建站难题?  实例解析Array和String方法  Python文件管理规范_工程实践说明【指导】  小型网站制作HTML,*游戏网站怎么搭建?  深圳网站制作培训,深圳哪些招聘网站比较好?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  制作门户网站的参考文献在哪,小说网站怎么建立?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  家具网站制作软件,家具厂怎么跑业务?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  油猴 教程,油猴搜脚本为什么会网页无法显示?  宝塔新建站点报错如何解决?  如何用VPS主机快速搭建个人网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  ,想在网上投简历,哪几个网站比较好?  网站设计制作企业有哪些,抖音官网主页怎么设置?  建站主机SSH密钥生成步骤及常见问题解答? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。