head部分:
<script type="text/javascript" src="bower_components/vue/dist/vue.min.js"></script>
body部分的html代码:
<!--组件的生命周期有八个,点乘式为[create,mount,update,destroy] x [before,ed]--> <div id="app"> <newcomponent1 v-if="show"></newcomponent1> <!--button用来销毁和创建组件--> <button @click="ifShow">创建/销毁</button> </div>
script部分的代码:
<script>
new Vue({
el:"#app",
data:{
show:true
},
components:{
"newcomponent1":{
//vue2.0中只允许template只存在一个元素,多种元素组合就得包裹在一个盒子里面
template:'<div><p>{{message}}</p><br/><button @click="message++">+1</button></div>',
data:function(){
return {message:0};
},
beforeCreate:function(){
//别想着在这里调用methods的方法了,不可能的,盘古还没开天地,你咋抬头都看不见天。
//其实我们可以把整个vue实例看做一个组件,以便于我们理解vue的生命周期
console.log("called before create!")
},
created:function(){
this.createdFun();
},
beforeMount:function(){
this.beforeMounteFun();
},
mounted:function(){
this.muntedFun();
},
beforeUpdate:function(){
this.beforeUpdateFun();
},
updated:function(){
this.updatedFun();
},
beforeDestroy:function(){
this.beforeDestroyFun();
},
destroyed:function(){
this.destroyedFun();
},methods:{
//beforeCreateFun:function(){
// console.log("called before create!")
//},为什么注释掉,因为beforeCreate取不到内部的任何数据
createdFun:function(){
console.log("called created!")
},beforeMounteFun:function(){
console.log("called before mounte!")
},muntedFun:function(){
console.log("called mounted!")
},beforeUpdateFun:function(){
console.log("called before update!")
},updatedFun:function(){
console.log("called updated!")
},beforeDestroyFun:function(){
console.log("called before destroy!")
},destroyedFun:function(){
console.log("called distroy!");
}
}
}
},
methods:{
ifShow:function(){
this.show = !this.show;
}
}
});
</script>
