vue组件生命周期详解

时间:2021-05-26

本文实例为大家分享了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>

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章