Vue面试精华:组件样式隔离、keep-alive、DOM操作与生命周期管理

需积分: 5 0 下载量 38 浏览量 更新于2024-08-04 收藏 35KB DOC 举报
在Vue.js的面试中,面试官可能会关注以下几个关键知识点: 1. **样式隔离**: 在Vue组件中,使用`scoped`属性是实现样式隔离的有效方式。当你在组件内的`style`标签前加上`scoped`,该组件的CSS样式将仅对该组件内部生效,防止样式污染。若需在父组件中影响子组件样式,可以利用选择器穿透(即使用`.parent .child`这样的路径)来间接修改。 2. **`<keep-alive>`组件**: `keep-alive`用于缓存组件实例,确保当组件从视图中卸载后仍保留其状态,并在再次激活时避免不必要的重新渲染。这对于需要维护组件状态或避免重复渲染性能开销的情况尤其有用。 3. **DOM元素访问**: 在Vue组件中,可以使用`ref`属性为HTML元素添加一个引用,然后在JavaScript代码中通过`this.$refs`对象来访问这些元素。这对于操作DOM、获取DOM节点信息非常实用。 4. **Vue指令**: - `v-model`:双向数据绑定,允许数据与表单输入元素实时同步。 - `v-for`:循环遍历数组或对象,动态渲染列表。 - `v-if` 和 `v-show`:前者在条件满足时渲染,后者在任何时候都渲染,只是根据`v-show`的值切换元素的display属性。 - `v-bind`:动态绑定属性,可以动态设置元素属性。 - `v-on`:事件绑定,用于监听元素的用户交互事件。 - `v-once`:只绑定一次,适用于已知不会改变的静态模板。 5. **事件处理**: Vue的`v-on`指令可以同时监听多个函数,通过逗号分隔多个事件名来实现。这类似于DOM原生的`addEventListener`方法。 6. **`key`在循环中的作用**: 在Vue的`v-for`循环中,使用`key`属性为每个循环节点提供唯一标识,避免Vue在更新时复用已渲染的元素导致潜在问题。`key`对Vue的虚拟DOM Diff算法至关重要,确保了高效的更新过程。 7. **组件配置对象**: - `data`:存储组件内部的数据。 - `props`:定义组件接收到的父组件传入的属性。 - `computed`:计算属性,基于其他属性计算得出的新值。 - `components`:定义或引用子组件。 - `methods`:自定义方法供组件使用。 - `watch`:属性监听器,当依赖的属性变化时执行回调。 - `filters`:数据过滤器,用于处理数据展示。 - `mounted`:组件挂载后执行的生命周期函数。 8. **`computed`和`watch`的区别**: - `computed`:适用于基于数据计算得出的结果,如价格计算,适合值不变的情况。 - `watch`:当数据发生变化时执行,通常处理副作用,如数据依赖或状态管理。 9. **组件生命周期函数**: - `beforeCreate`:创建实例之前。 - `created`:实例创建完成但未挂载。 - `beforeMount`:挂载开始前。 - `mounted`:组件已挂载到DOM。 - `beforeUpdate`:数据更新但DOM未更新前。 - `updated`:数据更新且DOM更新后。 - `beforeDestroy`:销毁前。 - `destroyed`:实例已销毁。 10. **Vue路由钩子函数**: - 全局路由钩子:如`beforeEach`、`afterEach`、`beforeResolve`、`afterResolve`等,用于在导航过程中执行特定逻辑,例如权限检查或数据获取。 面试时,候选人需要熟悉这些概念,并能解释它们的使用场景、优缺点以及如何在实际项目中应用。