Vue 进阶面试题, mounted 生命周期和 keep-alive 中的 activated 钩子的优先级是什么?
Vue 进阶面试题, mounted 生命周期和 keep-alive 中的 activated 钩子的优先级是什么?
QA
Step 1
Q:: mounted 生命周期和 keep-
alive 中的 activated 钩子的优先级是什么?
A:: 在 Vue.
js 中,组件的 mounted
生命周期钩子是在组件第一次被插入到 DOM 中时调用的。对于使用 keep-alive
包裹的组件,activated
钩子是在组件从非活动状态变为活动状态时调用的。因此,mounted
钩子只会在组件首次加载时调用一次,而 activated
钩子可以多次调用,因为它会在组件每次激活时触发。如果一个组件是通过 keep-alive
保持在内存中,且被切换到非活动状态后再激活,activated
钩子的执行会早于 mounted
。因此,activated
钩子的优先级在某些场景下高于 mounted
钩子。
Step 2
Q:: Vue 中 keep-
alive 的作用是什么?
A:: 在 Vue.
js 中,keep-alive
是一个内置的抽象组件,用于缓存包裹的动态组件。使用 keep-alive
可以在组件切换时保持组件的状态,避免因频繁切换导致组件被重新渲染和销毁。这在性能优化和用户体验上都有很大帮助,特别是在多页面表单、标签页切换或类似场景中,保留组件状态可以减少加载时间并提高流畅度。
Step 3
Q:: activated 和 deactivated 生命周期钩子在实际应用中如何使用?
A:: 在实际应用中,activated
和 deactivated
钩子通常用于在组件被缓存时执行一些特定的操作。例如,在 activated
钩子中恢复数据或重新绑定事件监听器,而在 deactivated
钩子中释放资源或取消事件监听器。这样可以确保即使组件处于非活动状态时,应用程序依然高效运作。
Step 4
Q:: mounted 钩子和其他生命周期钩子的区别是什么?
A:: mounted
钩子是在组件挂载到 DOM 上后调用的,适合执行依赖 DOM 元素的初始化操作。而 Vue.
js 的其他生命周期钩子,比如 created
、beforeMount
、updated
、destroyed
等,则在组件的不同生命周期阶段调用,用于处理组件创建、更新、销毁等过程中的逻辑。