Vue面试题知识点总结
**1. Vue 中为什么要用 key?**
在 Vue 中,使用 key 可以提高更新效率。当 Vue 更新列表时,会通过 key 来定位具体的节点。如果没有使用 key,Vue 将会通过节点在虚拟 DOM 中的位置来决定需要更新哪个节点,这样会消耗更多的性能。
**2. Vue 中的 key 如何使用?**
每个列表元素都需要一个唯一的 key,可以使用对象的属性或数组索引作为 key。例如:
```html
<div v-for="item in items">
<div :key="item.id">
{{ item }}
</div>
</div>
```
**3. Vue 组件中 data 为什么必须是函数?**
因为每个组件实例都有自己的 data,如果 data 是一个对象,那么每个实例都会共享同一个 data,当创建新的组件实例时,如果直接使用对象会保留上一次的 state,只有通过函数才能保证每次实例化都有独立的 state。
**4. 什么是 Vue.js 的响应式原理?**
Vue.js 的响应式原理基于 JavaScript 的 Object.defineProperty() API,通过在属性被访问和修改时发出通知来实现数据的响应式监听。当数据变化时,视图会自动更新。
**5. 在 Vue.js 中,如何使用 computed 属性?**
computed 属性是一种在 Vue 实例中定义的函数,它根据依赖的数据动态计算出一个新的属性值。当依赖的数据变化时,computed 属性会自动更新。使用方式为:
```javascript
computed: {
propertyName: function() {
/* 计算逻辑 */
}
}
```
**6. VueRouter 是什么?它在 Vue.js 应用中有什么作用?**
VueRouter 是 Vue.js 官方的路由管理器。它和 Vue.js 深度集成,使得你可以轻松地构建单页应用(SPA)。VueRouter 可以让你自由地在不同的路由之间切换,并且每个路由可以有自己的视图和组件。
**7. 如何在 Vue.js 中使用 VueRouter?**
首先需要在项目中安装 VueRouter,然后定义路由和视图,最后在 Vue 实例中使用 VueRouter。通常在主视图组件中注册所有路由。
**8. Vue.js 中,什么是组件?**
组件是 Vue.js 最核心的特性之一。在 Vue.js 中,组件是自定义元素,Vue 通过它来扩展你的 HTML 元素。每个组件都是一个带有预定义选项的一个 Vue 实例。