Vue 基础面试题, 通常在 Vue 的哪个生命周期钩子中请求异步数据?为什么?
Vue 基础面试题, 通常在 Vue 的哪个生命周期钩子中请求异步数据?为什么?
QA
Step 1
Q:: 在 Vue 的哪个生命周期钩子中请求异步数据?为什么?
A:: 通常在 Vue 的 mounted
生命周期钩子中请求异步数据。因为在这个钩子函数执行时,组件已经被挂载到 DOM 上,可以确保所有的 DOM 元素都可以被访问和操作,且避免了在还未挂载的情况下进行数据请求带来的潜在问题。
Step 2
Q:: Vue 中的生命周期钩子有哪些?它们的执行顺序是什么?
A:: Vue 中的生命周期钩子主要包括:beforeCreate
、created
、beforeMount
、mounted
、beforeUpdate
、updated
、beforeDestroy
和 destroyed
。执行顺序为:beforeCreate
->
created
->
beforeMount
->
mounted
->
beforeUpdate
->
updated
->
beforeDestroy
->
destroyed
。这些钩子函数按顺序执行,涵盖了组件从创建到销毁的整个过程。
Step 3
Q:: 如何在 Vue 中处理父子组件之间的数据传递?
A:: 在 Vue 中,父组件通过 props
向子组件传递数据,子组件通过 $emit
触发事件将数据传递回父组件。父组件可以在子组件上监听这些事件,从而接收数据。这种方式确保了数据流向的一致性和组件之间的解耦。
Step 4
Q:: 在 Vue 中如何处理异步操作引发的错误?
A:: 可以在 Vue 中通过 try...catch
捕获异步操作中的错误,也可以使用 Vue 提供的全局错误处理器 Vue.config.errorHandler
捕获组件中的错误。此外,还可以使用 Promise
的 .catch()
方法来处理异步操作中未捕获的错误。
Step 5
Q:: Vue 中的 watch
与 computed
有什么区别?
A:: computed
是基于依赖缓存的计算属性,只有当依赖的属性发生变化时,computed
才会重新计算。watch
是观察某个特定数据的变化,当数据发生变化时触发指定的回调函数。一般来说,computed
适用于基于其他数据计算出新的数据,而 watch
则适用于数据变化时需要执行异步操作或较大开销的操作。