29个Vue.js基础面试题及解答
Vue.js 是一个轻量级、响应式的渐进式 JavaScript 框架,简化前端开发流程。以下是Vue.js常见的面试题:
1. Vue实例生命周期
Vue 实例的生命周期包括以下阶段:
- beforeCreate:创建前
- created:创建后
- beforeMount:挂载前
- mounted:挂载后
- beforeUpdate:更新前
- updated:更新后
- beforeDestroy:销毁前
- destroyed:销毁后
每个阶段都有特定的任务,如数据初始化、DOM 渲染等。
2. 常见指令
- v-if:条件渲染
- v-for:遍历数据
- v-on:事件绑定
- v-bind:动态绑定属性
- v-model:双向数据绑定
3. 组件
Vue 提供全局组件、局部组件和异步组件三种类型。全局组件可在任何实例中使用,局部组件仅限当前作用域,而异步组件通过按需加载优化性能。
4. 响应式原理
Vue 通过 Object.defineProperty() 实现响应式,当数据变化时,会自动更新对应的视图。
5. 计算属性与观察者
- computed:依赖缓存,仅当相关依赖发生变化时重新计算。
- watch:监听数据变化,执行自定义逻辑,常用于复杂操作。
6. Vue路由
前端路由通常通过 Vue-Router 实现,改变 URL 的 # 或使用 history API 进行页面切换。
7. 父子组件通信
通过 props (父传子) 和 $emit (子传父) 实现。
8. 单文件组件 (SFC)
将模板、脚本、样式封装在 .vue
文件中,便于管理。
9. Vuex状态管理
Vuex 核心包括 state、mutations、actions、getters 和 modules,用于集中管理状态。
10. 异步组件
按需加载,提升性能,减少初始加载时间。
11. 指令系统
如 v-bind 动态绑定数据、v-show 控制显示、v-for 循环渲染、v-on 绑定事件等。
12. 组件注册
通过 components 属性定义组件,使用 Vue.createApp
创建实例。
13. 兄弟组件通信
通过事件总线 (event bus)、Vuex 或 provide/inject 实现。
14. Vuex辅助函数
包括 mapState、mapGetters、mapActions 和 mapMutations,简化组件内状态访问和操作。
Vue 提供丰富的特性和工具,使得开发人员能够高效构建复杂应用。掌握基础知识有助于更好地应对面试。
评论区