vue组件生命周期详解


Posted in Javascript onNovember 07, 2017

本文实例为大家分享了vue组件生命周期的具体代码,供大家参考,具体内容如下

分为4个阶段:

create/mount/update/destroy

每一个阶段都对应着有自己的处理函数

create: beforeCreate created

初始化

mount: beforeMount mounted

和挂载相关的处理

update: beforeUpdate updated

根据要更新的数据 做逻辑判断

destroy:beforeDestroy destroyed

清理工作

代码:

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>生命周期</title>
 <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
  <p>{{msg}}</p>
<!--点击的时候isShow进行取反 -->
  <button @click="isShow = !isShow">切换是否显示组件</button>
  <my-component v-if="isShow"></my-component>
 </div>
 <script>
  Vue.component("my-component",{
   template:`
     <div>
      <button @click="handleClick">Click Me</button>
      <h1>component:{{count}}</h1>
      </div>
   `,
   data:function(){
     return {
      count:0
     }
    },
   methods:{
    handleClick:function(){
     this.count++;
    }
   },
   beforeCreate: function () {
   console.log('准备创建组件');
  },
  created: function () {
   console.log('组件创建完毕');
  },
  beforeMount: function () {
   console.log('组件的模板准备挂载到DOM');
  },
  mounted: function () {
   console.log('挂载完毕');
  },
  beforeUpdate: function () {
   console.log('准备更新了');
  },
  updated:function(){
   console.log('更新完成');
  },
  beforeDestroy: function () {
   console.log('准备destroy');
  },
  destroyed: function () {
   console.log('destroy完成');
  }
  })
  new Vue({
   el:"#container",
   data:{
    msg:"Hello VueJs",
    isShow:true
   }
  })
 </script>
 </body>
</html>

生命周期练习,需要那阶段写那个阶段

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>生命周期练习</title>
 <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
  <p>{{msg}}</p>
  <my-component></my-component>
 </div>
 <script>
  Vue.component("my-component",{
   data:function(){
    return {
     myOpacity:0
    }
   },
   template:` <h1 v-bind:style="{opacity:myOpacity}">透明度将改变
   </h1>`,
   mounted:function(){
    setInterval(function(){
     this.myOpacity += 0.1;
     if(this.myOpacity>1){
      this.myOpacity = 0;
     }
    }.bind(this),1000)
   }
  })
  new Vue({
   el:"#container",
   data:{
    msg:"Hello VueJs"
   }
  })
 </script>
 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
js中的面向对象入门
Mar 06 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
May 27 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
vue技术分享之你可能不知道的7个秘密
Apr 09 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
Jul 15 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
关于layui导航栏不展示下拉列表的解决方法
Sep 25 Javascript
JS数组Reduce方法功能与用法实例详解
Apr 29 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
Jul 17 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
Angular2的管道Pipe的使用方法
Nov 07 #Javascript
浅谈react 同构之样式直出
Nov 07 #Javascript
vue组件watch属性实例讲解
Nov 07 #Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
Nov 07 #Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 #Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 #Javascript
浅谈mint-ui 填坑之路
Nov 06 #Javascript
You might like
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
python Cartopy的基础使用详解
2020/11/01 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
python解包用法详解
2021/02/17 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
中文系师范生自荐信
2013/10/01 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
三八节标语
2014/06/27 职场文书
社保转移委托书范本
2014/10/08 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
聘任证明怎么写
2015/03/02 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
中学语文教学反思
2016/02/16 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书