我确定Vue中的生命周期挂钩为8(beforeCreate,create,beforeMount,mount,beforeUpdate,update,beforeDestroy,destroy),但今天我发现(https://vuejs.org/v2/api/#activated)还有3个: / p>
•已激活
•已停用
•已捕获错误
有人可以解释这三个工作原理吗?可以用console.log测试它们吗? (只是了解何时调用它们)
答案 0 :(得分:2)
首先,介绍一下上下文:
在Vue 2.0+中,有一个名为<keep-alive>
的内置组件,该组件将子元素放入其中并作为缓存的组件将其保持在内存中。通常,如果Vue的属性发生变化,Vue会重用该组件,但是该组件可能非常复杂且更新缓慢。您可以用<keep-alive>
包装它,然后该组件将被缓存以提供给它的道具。
更新<keep-alive>
中的组件时,将调用activated
生命周期挂钩。将该组件缓存并放在一边时,将调用deactivated
生命周期挂钩。
errorCaptured
生命周期挂钩是在Vue 2.5.0中添加的,只要后代组件捕获到错误,就会调用该挂钩。因此,如果您有一个名为A的组件,该组件有一个称为B的子组件,并且有一个名为C的子组件,那么如果C捕获并出错,则errorCaptured
生命周期挂钩将同时在A和B。
这些钩子的工作方式与其他任何钩子相同,因此以相同的方式使用它们。
export default {
data() {
return {}
},
mounted() {
console.log('mounted hook called')
},
errorCaptured(err, vm, info) {
console.log('error captured in component', vm)
console.error(err)
console.log('error info:', info)
},
activated() {
console.log('cached component is being used again')
},
deactivated() {
console.log('component is being kept alive in cache for now')
}
}
答案 1 :(得分:1)
我知道这个答案已经来不及了,但有人可能也在寻找答案 问题。默认情况下,Vue.js禁用了console.log功能,因此我们必须启用它。
只需将SELECT DISTINCT SQL_CALC_FOUND_ROWS wp_users.*
FROM wp_users
LEFT JOIN wp_usermeta
ON (wp_users.ID = wp_usermeta.user_id
AND wp_usermeta.meta_key = 'ur_user_status' )
LEFT JOIN wp_usermeta AS mt1
ON ( wp_users.ID = mt1.user_id )
LEFT JOIN wp_usermeta AS mt2
ON ( wp_users.ID = mt2.user_id )
WHERE 1=1
AND ( ( ( wp_usermeta.user_id IS NULL
OR ( mt1.meta_key = 'ur_user_status'
AND mt1.meta_value = '1' ) )
AND ( mt2.meta_key = 'wp_3_capabilities' ) ) )
ORDER BY user_login AS
放在package.json上
欢呼