vue中的11个钩子函数

vue中的钩子函数一共有11个

一. 组件创建前后(beforeCreate/created)

data(){ return { a:1 },

    beforeCreate(){

        console.log(this.a)//undefined },

    created(){

        console.log(this.a)//1 }

}

二. vue启动前后(beforeMount /mounted)

vue在beforeMount时,还没有渲染数据到<div id="app"><div/>里面,此时的这个组件还是空的

当mounted时,才会往<div id="app"><div/>添加东西,也就是vue正式接管<div id="app"><div/>,可以获取#app的innerHTML查看差异;

beforeMount(){

console.log(document.getElementById('app').innerHTML)//空的

},

mounted(){

console.log(document.getElementById('app').innerHTML)//#app里的内容

}

三. 组件更新前后(beforeUpdate/updated)

四. 组件销毁前后(beforeDestroy/destroyed)

给子组件用v-if来控制它的销毁和创建(注意以下:v-show不行),所以这两个钩子函数一般用于做性能的优化。

五.组件激活时,未激活时(activated/deactivated)

这两个钩子函数呢一般配合<keep-alive><keep-alive/>来使用。

通常一个组件是很大的,如果我们总是一直创建、销毁、创建、销毁。。。这样很不合理,而且很浪费性能,这时候我们就可以用<keep-alive><keep-alive/>配合着两个钩子函数来控制组件的激活和不激活

六. 当捕获一个来自子孙组件的错误时被调用(errorCaptured)

当子孙组件报错的时候,父组件会触发这个钩子函数,并且会返回三个参数, 第一个参数是 错误对象 ,第二个参数是 报错的子孙组件 ,第三个参数是 报错的子孙组件的具体哪个地方报错。

第一个参数为错误对象、第二个错误的组件实例以及一个包含错误来源信息的字符串

(如,假如我没有定义b这个变量,但是我去console.log(b) 这一句肯定会报错,假如我把这句错误代码写在了created这个钩子函数里,那第三个参数会返回就是:created hook)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。