CSDN|不来看看这些 VUE 的生命周期钩子函数? | 原力计划( 三 )

CSDN|不来看看这些 VUE 的生命周期钩子函数? | 原力计划
本文插图
注:组件进行销毁的时候,是先销毁的是父组件,然后销毁子组件 。Activated被 keep-alive 缓存的组件激活时调用 。该钩子在服务器端渲染期间不被调用 。Deactivated被 keep-alive 缓存的组件停用时调用 。该钩子在服务器端渲染期间不被调用 。例:activated与deactivated执行演示:<div id="box"> <keep-alive> <component :is="cName"></component> </keep-alive> <button @click="cName='One'">change1</button> <button @click="cName='Two'">change2</button></div><script> var One ={ template:`<div>one component</div>`, activated{ console.log("activated"); }, deactivated{ console.log("deactivated"); } } var Two ={ template:`<div>two component</div>`, } new Vue({ el:"#box", components:{ One,Two }, data:{ cName:'One' //存组件的名字 } })</script>结果:CSDN|不来看看这些 VUE 的生命周期钩子函数? | 原力计划
本文插图
ErrorCaptured类型:(err: Error, vm: Component, info: string) => ?boolean 。当捕获一个来自子孙组件的错误时被调用 。 此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串 。 此钩子可以返回 false 以阻止该错误继续向上传播 。我们可以在此钩子中修改组件的状态 。 因此在捕获错误时 , 在模板或渲染函数中有一个条件判断来绕过其它内容就很重要;不然该组件可能会进入一个无限的渲染循环 。

  • 默认情况下 , 如果全局的 config.errorHandler 被定义 , 所有的错误仍会发送它 , 因此这些错误仍然会向单一的分析服务的地方进行汇报 。
  • 如果一个组件的继承或父级从属链路中存在多个 errorCaptured 钩子 , 则它们将会被相同的错误逐个唤起 。
  • 如果此 errorCaptured 钩子自身抛出了一个错误 , 则这个新错误和原本被捕获的错误都会发送给全局的config.errorHandler 。
  • 一个 errorCaptured 钩子能够返回 false以阻止错误继续向上传播 。 本质上是说“这个错误已经被搞定了且应该被忽略” 。 它会阻止其它任何会被这个错误唤起的 errorCaptured钩子和全局的 config.errorHandler 。
版权声明:本文为CSDN博主「huangfuyk」的原创文章 , 遵循CC 4.0 BY-SA版权协议 , 转载请附上原文出处链接及本声明 。


推荐阅读