当前位置: 首页 > wzjs >正文

免费网站制作视频教程网络营销推广软件

免费网站制作视频教程,网络营销推广软件,抚顺网站建设招聘,移动终端网站建设文章目录 第4章 Vue的生命周期详细过程4.1 Vue的生命周期简介4.2 Vue的生命周期钩子4.2.1 beforeCreate/created4.2.2 beforeMount/mounted4.2.3 beforeUpdate/updated4.2.4 beforeDestory/destroyed 第4章 Vue的生命周期详细过程 4.1 Vue的生命周期简介 每个 Vue 实例在被创…

文章目录

  • 第4章 Vue的生命周期详细过程
    • 4.1 Vue的生命周期简介
    • 4.2 Vue的生命周期钩子
      • 4.2.1 beforeCreate/created
      • 4.2.2 beforeMount/mounted
      • 4.2.3 beforeUpdate/updated
      • 4.2.4 beforeDestory/destroyed

第4章 Vue的生命周期详细过程

4.1 Vue的生命周期简介

每个 Vue 实例在被创建之前都要经过一系列的初始化过程.

vue在生命周期中共有:beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestorydestroyed8个状态;

4.2 Vue的生命周期钩子

4.2.1 beforeCreate/created

  • beforeCreate:Vue生命周期的第一个函数,在Vue对象创建之前执行,初始化Vue自身的事件、注册Vue示例的生命周期函数等,在该阶段props、data、method都处于不可用状态;
    • 1)创建VUE对象之前执行
    • 2)data中的数据还未初始化
    • 3)el还未关联到对应的id(还未挂载DOM)
    • 4){{}}表达式中的内容还没更新(真实DOM还未渲染)
  • created:创建VUE对象之后执行,该阶段Vue示例已经被创建成功,初始化了props、data、methods等功能;但是Vue还未挂载dom元素(还未进行绑定)
    • 1)创建VUE对象之后执行
    • 2)data中的数据已经初始化
    • 3)el还未关联到对应的id
    • 4){{}}表达式中的内容还没更新(真实DOM还未渲染)

【示例代码1-观察dom的变化】

<body>
<div id="box">{{message}}
</div><script>new Vue({el: "#box",data: {message: 'Hello World'},// 在beforeCreate阶段的Vue,数据未初始化、dom未挂载、dom也未渲染beforeCreate: function () {console.log('创建vue实例前【beforeCreate】');console.log('data 数据:' + this.message);			// undefinedconsole.log('挂载的对象:' + this.$el);				// undefinedconsole.log('真实dom结构:' + document.getElementById('box').innerHTML);		// {{message}}console.log('------------------');},// 在created阶段的Vue,数据已经初始化、但dom未挂载、dom也未渲染created: function () {console.log('创建vue实例后【created】');console.log('data 数据:' + this.message);				// Hello Worldconsole.log('挂载的对象:' + this.$el);					// undefinedconsole.log('真实dom结构:' + document.getElementById('box').innerHTML);		// {{message}}console.log('------------------');}});
</script></body>

【示例代码2-调用Vue数据】

<body>
<div id="box">{{message}}
</div><script>new Vue({el: "#box",data: {message: 'Hello World'},methods: {method() {console.log("method running...");}},beforeCreate: function () {console.log('创建vue实例前【beforeCreate】');// Vue实例还未创建成功,不能调用this.method();// Vue实例还未创建成功,不能访问数据(undefined)console.log(this.message);console.log('------------------');},created: function () {console.log('创建vue实例后【created】');// Vue实例已经创建成功,可以调用Vue方法this.method();// Vue实例已经创建成功,可以访问数据console.log(this.message);console.log('------------------');}});
</script></body>

4.2.2 beforeMount/mounted

  • beforeMount:对象挂载之前执行,此时el已经关联到对应对象,但{{}}表达式还未加载(挂载了,但还没完全挂载)
    • 1)对象挂载之前执行
    • 2)data中的数据已经初始化
    • 3)el已经关联到对应对象(挂载了DOM)
    • 4){{}}表达式中的内容还没更新(真实DOM还未渲染)
  • mounted:对象挂载之后执行,此时{{}}表达已经加载,执行完mounted之后开始正常执行js代码
    • 1)对象挂载之后执行
    • 2)data中的数据已经初始化
    • 3)el已经关联到对应对象
    • 4){{}}表达式中的内容已经更新(真实DOM已经渲染)

【示例代码1-观察dom的变化】

<body>
<div id="box">{{message}}
</div><script>var vm = new Vue({el: "#box",data: {message: 'Hello World'},// 在beforeMount阶段的Vue,数据已经初始化、dom已经挂载、但dom未渲染beforeMount: function () {console.log('挂载到dom前【beforeMount】');console.log('data 数据:' + this.message);			// Hello Worldconsole.log('挂载的对象:' + this.$el);				// [object HTMLDivElement]console.log('真实dom结构:' + document.getElementById('box').innerHTML);		// {{message}}console.log('------------------');},// 在mounted阶段的Vue,数据已经初始化、dom已经挂载、dom也已经渲染mounted: function () {console.log('挂载到dom后【mounted】');console.log('data 数据:' + this.message);			// Hello Worldconsole.log('挂载的对象:' + this.$el);				// [object HTMLDivElement]console.log('真实dom结构:' + document.getElementById('box').innerHTML);		// Hello Worldconsole.log('------------------');}});
</script></body>

4.2.3 beforeUpdate/updated

当修改了Vue中的数据时将会触发beforeUpdate与updated方法。

  • beforeUpdate:Vue数据更新前执行,此时data中的数据已经更新,但是{{}}表达式中引用的还没有更新(还未渲染到DOM上)。
  • updated:Vue数据更新后执行,{{}}表达式中引用也更新。

【示例代码-观察数据变更前后的值】

<body>
<div id="box">{{message}}<br><button v-on:click="fun1()">改变数据</button></div><script>var vm = new Vue({el: "#box",data: {message: 'Hello World'},methods: {fun1() {this.message = Math.random();}},// 当修改了Vue中的数据时,beforeUpdate方法中的dom还是为渲染之前的,但Vue中的数据已经修改beforeUpdate: function () {console.log('数据变化更新前【beforeUpdate】');console.log('data 数据:' + this.message);console.log('挂载的对象:' + this.$el);console.log('真实dom结构:' + document.getElementById('box').innerHTML);console.log('------------------');},// 当修改了Vue中的数据时,updated方法中的dom已经更新为最新的数据updated: function () {console.log('数据变化更新后【updated】');console.log('data 数据:' + this.message);console.log('挂载的对象:' + this.$el);console.log('真实dom结构:' + document.getElementById('box').innerHTML);console.log('------------------');}});</script></body>

4.2.4 beforeDestory/destroyed

  • beforeDestory:vue对象销毁前执行,在该方法中,Vue中注册的组件、侦听器、事件监听等都处于可用状态,一般在此阶段释放其他资源
  • destroyed:vue对象销毁后执行,在该方法中,已经销毁了Vue中注册的组件、侦听器、事件监听等;

【示例代码-观察Vue实例销毁前后的变化】

<body>
<div id="box">{{message}}<hr><button @click="exit">销毁VM</button></div><script>var vm = new Vue({el: "#box",data: {message: 'Hello World'},methods: {exit(){// 销毁vmthis.$destroy()}},beforeDestroy: function () {console.log('--------beforeDestroy----------');},destroyed: function () {console.log('--------destroyed----------');}});
</script></body>

http://www.dtcms.com/wzjs/486904.html

相关文章:

  • 网站的推广运营seo链接优化
  • 西安做网站招聘seo推广人员
  • 电子商务网站开发流程图福建seo搜索引擎优化
  • 深圳市网站建设科技公司可以免费打开网站的软件下载
  • wordpress图片之间空一行南京seo关键词优化预订
  • 网站改版提升总结宁波网站关键词排名推广
  • 网站建设对企业的重要性关键词优化技巧有哪些
  • .net可以做网站做游戏 博客园网站友链
  • 美国视频网站宽带费用静态网站开发
  • 网站流量如何赚钱seo网站设计工具
  • 网站建设网络推广代理公司南昌网站设计
  • 无锡信息网站建设上海网络seo优化公司
  • 西安做搭建网站整合营销是什么
  • 东莞制作手机网站广点通
  • 豪华大气的旅行社网站源码游戏优化大师手机版
  • 浙江 外贸网站建设seo指什么
  • 做现货去哪些网站营销好呢谷歌浏览器官网下载安装
  • 网站怎么做跟踪链接台州网站制作维护
  • wordpress成品站源码sem广告投放是做什么的
  • e通网网站建设广州seo快速排名
  • 云南昆明疫情最新消息广州软件系统开发seo推广
  • 江西昌宇建设工程公司网站互联网推广软件
  • 菜鸟教程自学网北京网络seo
  • 做网站业务员提成几个点app拉新任务平台
  • 北京网站seo公司安卓优化大师老版本
  • 自己做的网站项目怎样卖推广注册app拿佣金平台
  • 国内顶尖网站设计公司怎么让关键词快速排名首页
  • 中国十大猎头公司介绍优化清理大师
  • 安徽工程建设信息网站王开林百度搜索广告投放
  • 北京做网站多少钱合理找个免费网站这么难吗