生命周期:
beforecreate :
一般使用场景是在加 loading事件 的时候
created :
处于loading结束后,还做一些初始化,实现函数自执行(data数据已经初始化,但是DOM结构渲染完成,组件没有加载)
beforemount :
处于组件创建完成,但未开始执行操作
mounted :
处于发起后端请求,获取数据,配合路由钩子执行操作(DOM渲染完成,组件挂载完成 )
beforeupdate、updated :
处于数据更新的前后
beforeDestroy :
当前组件还在的时候,想删除组件
destroyed :
当前组件已被销毁,清空相关内容
created 与 mounted 的区别
created :
在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted :
在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
mounted 与 methods 的区别
mounted :
是生命周期方法之一,会在对应生命周期时执行。
methods :
是Vue实例对象上绑定的方法,供当前Vue组件作用域内使用,未调用不会执行,只执行逻辑,返回值可有可无。
computed 与 watched 的区别
computed :
是计算属性,也可以理解为一个方法。其中计算的结果如果不发生改变就不会触发,且必须返回一个值并在DOM中绑定的才能取得值。他可以自动获取数据的改变。
watched :
属性是手动定义的所需监听的值,不同的数据可以在其中多次定义监听值,这时会消耗一定性能,他并不能像computed那样自动改变。
<script>
let vm=new Vue({
el:"#app",
data:{
name:"onceweb"
},
beforeCreate(){
console.log("创建之前")
console.log(this.$el)
console.log(this.$data)
},
created(){
console.log("成功创建")
console.log(this.$el)
console.log(this.$data)
},
beforeMount(){
console.log("挂载之前")
console.log(this.$el)
console.log(this.$data)
},
mounted(){
console.log("成功挂载")
console.log(this.$el)
console.log(this.$data)
},
beforeUpdate(){
console.log("更新之前")
let name = this.$refs.app.innerHTML
console.log('name:'+name)
},
updated(){
console.log("成功更新")
let name = this.$refs.app.innerHTML
console.log('name:'+name)
},
beforeDestory(){
console.log("销毁之前")
},
destoryed(){
console.log("成功销毁")
}
});
</script>