2024-10-23 08:48:36
我们把vue3 和 vue2 的项目进行对比来去说明
综上所述,在 vue3 的初始化项目中,与 vue2 对比的最大差异其实就是两点:
setup 函数也是 Composition API 的入口函数,我们的变量、方法都是在该函数里定义的,不再使用vue2中的data而是setup。
reactive 方法是用来创建一个响应式的数据对象,该API也很好地解决了Vue2通过 defineProperty 实现数据响应式的缺陷
上面使用name必须state.name,不方便,另一个解决办法如下
执行 setup 时,组件实例尚未被创建。因此,你只能访问以下 property: props attrs slots emit
换句话说,你 将无法访问 以下组件选项:
data computed methods
在Vue3中,这些生命周期部分有所变化,并且调用的方式也有所改变
Ts可指定类型,而不是以往所有对象参数都是object的any类型
另外Props可以提出来
h函数只是createVNode的简单封装,所以把h函数替换为createVNode也是一样的
ref 就是通过 reactive 包装了一个对象 ,然后是将值传给该对象中的 value 属性,这也就解释了为什么每次访问时我们都需要加上 .value。
我们可以简单地把 ref(obj) 理解为这个样子 reactive({value: obj})
watch 和 watchEffect 都是用来监视某项数据变化从而执行指定的操作的,但用法上还是有所区别
watchEffect:
1、不需要手动传入依赖
2、每次初始化时会执行一次回调函数来自动获取依赖
3、无法获取到原值,只能得到变化后的值