vue3.0与2.0的不同

33 阅读2分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 四 天,点击查看活动详情

vue3相对于vue2

Object.defineProperty
无法监听对象,只能监听对象的属性。需要api监听对象属性的新增删除
无法监听数组
在vue3中修复了无法监听新增删除属性的功能,通过proxy来实现代理。
通过reactive对对象进行定义,通过get set来进行代理拦截。
ref是将定义好的数据放入到value属性上,每个应用都需要根组件,嵌套的可复用的组件树构成应用, 创建应用,挂载应用。
v-bind:class简写为:class,与普通的class相比,增加了相关时间属性的绑定,时间触发后可以修改属性从而加载不同class属性。效果就是class加:class效果。
也可以通过绑定数组渲染多个class属性。
v-bind,如果绑定值是null或undefined,则此attributes会从渲染元素上移除,类似dom结点溢出,打开浏览器调试工具也并不能看到此节点。
v-bind v-if v-for v-on v-slot 指定attribute v-bind:...可以进行简写去掉v-bind
v-on:简写成@.
使用$来调用内置的api。同时vue中也绑定了this指向组件实例的this,method方法没有上下文。
响应式状态,

image.png
dom状态的更改 预制防抖时间处理器进行事件的防抖处理。组件多次点击时,如果在顶部,时间清零,如果不在顶部,计时1s,防止用户下滑不到1秒自己滑上去,或是界面自己原因抖动而触发函数。

timer = setInterval(function () {
      document.documentElement.scrollTop = backTop - speedTop;
      if(backTop === 0){
        clearInterval(timer)
      }
    }, 10);

dom更新 解构赋值语法 组件样式是父组件加子组件 vue会自动加入相应的前缀:style 可以在样式中同一属性编写多种样式,浏览器会加载可以使用的最后一个样式属性。