vue3和vue2区别面试题
时间: 2024-01-18 15:18:25 浏览: 96
vue2.x与vue3.相关的部分面试题
Vue3和Vue2的区别主要包括以下几个方面:
1. 数据双向绑定:Vue3使用`Proxy`替代了Vue2中的`Object.defineProperty()`来实现数据双向绑定。这样做的好处是`Proxy`可以监听整个对象的变化,而不仅仅是对象的属性。
2. 生命周期函数的更换:Vue3中的生命周期函数发生了变化,例如`beforeCreate`和`created`合并为`setup`函数,`beforeMount`和`mounted`合并为`onMounted`函数等。
3. 新特性:Vue3引入了一些新特性,例如`Composition API`,它提供了一种新的组织组件逻辑的方式,使得代码更加清晰和可维护。另外,Vue3还引入了`Teleport`组件用于在DOM中移动组件的位置,以及`Suspense`组件用于处理异步组件的加载状态。
4. 缓存组件与更新组件:Vue3中引入了`<keep-alive>`组件的新写法,使用`<teleport>`和`<suspense>`来实现缓存组件和更新组件的功能。
5. `ref`和`reactive`的区别:Vue3中引入了`ref`和`reactive`两个新的响应式API。`ref`用于创建一个包装对象,可以通过`.value`来访问和修改值;`reactive`用于创建一个响应式的对象。
6. `watch`和`watchEffect`的区别:Vue3中引入了`watchEffect`函数,它可以自动追踪其依赖的响应式数据,并在依赖变化时重新运行。而`watch`函数需要手动指定要监听的响应式数据。
7. 修改数组下标不会影响视图:在Vue2中,修改数组的下标不会触发视图的更新,而在Vue3中,修改数组的下标也会触发视图的更新。
8. 定义数据的不一样:Vue3中使用`setup`函数来定义组件的数据和方法,而Vue2中使用`data`选项来定义。
9. 父子传值的不一样:在Vue3中,父组件通过`props`向子组件传递数据时,需要使用`v-bind`指令来绑定属性;而在Vue2中,父组件通过`props`向子组件传递数据时,直接将数据传递给子组件即可。
10. 指令与插槽不同:Vue3中的指令和插槽的写法发生了变化,具体的用法和语法也有所不同。
阅读全文