1. vue2和vue3双向数据绑定原理发生了改变

vue2的双向数据绑定是利用了es5 的一个API Object.definepropert() 对数据进行劫持 结合发布订阅模式来实现的。vue3中使用了es6的proxyAPI对数据进行处理。相比与vue2,使用proxy API 优势有:defineProperty只能监听某个属性,不能对全对象进行监听;可以省去for in 、闭包等内容来提升效率(直接绑定整个对象即可);可以监听数组,不用再去单独的对数组做特异性操作,vue3可以检测到数组内部数据的变化。

2.Vue3支持碎片(Fragments)

就是说可以拥有多个跟节点。

3. Composition API

Vue2 与vue3 最大的区别是vue2使用选项类型api,对比vue3合成型api。旧得选项型api在代码里分割了不同得属性:data,computed,methods等;新得合成型api能让我们使用方法来分割,相比于旧的API使用属性来分组,这样代码会更加简便和整洁。

4. 建立数据data

vue2是把数据放入data中,vue3就需要使用一个新的setup()方法,此方法在组件初始化构造得时候触发。使用一下三个步骤来简=建立反应性数据: 
1. 从vue引入reactive;使用reactive() 方法来声明数据为响应性数据;
3. 使用setup()方法来返回我们得响应性数据,从而template可以获取这些响应性数据。

5. 生命周期

vue2     --------------- vue3
beforeCreate -> setup()
Created -> setup()
beforeMount -> onBeforeMount
mounted -> onMounted
beforeUpdate -> onBeforeUpdate
updated -> onUpdated
beforeDestroyed -> onBeforeUnmount
destroyed -> onUnmounted
activated -> onActivated
deactivated -> onDeactivated

6. 父子传参不同,setup()函数特性

setup()函数接收两个参数:props、context(包含attrs、slots、emit)
setup函数是处于生命周期beforeCreated和created俩个钩子函数之前
执行setup时,组件实例尚未被创建(在setup()内部,this不会是该活跃实例得引用,即不指向vue实例,Vue为了避免我们错误得使用,直接将setup函数中得this修改成了undefined)
与模板一起使用时,需要返回一个对象
因为setup函数中,props是响应式得,当传入新的prop时,它将会被更新,所以不能使用es6解构,因为它会消除prop得响应性,如需解构prop,可以通过使用setup函数中得toRefs来完成此操作。父传子,用props,子传父用事件 Emitting Events。在vue2中,会调用this$emit然后传入事件名和对象;在vue3中得setup()中得第二个参数content对象中就有emit,那么我们只要在setup()接收第二个参数中使用分解对象法取出emit就可以在setup方法中随意使用了。

7.在setup()内使用响应式数据时,需要通过 .value 获取

import { ref } from 'vue'
const count = ref(0)
console.log(count.value)

8.从setup() 中返回得对象上得property 返回并可以在模板中被访问时,它将自动展开为内部值。不需要在模板中追加.value。

9.setup函数只能是同步的不能是异步的。

最新文章

  1. linux获取系统启动时间
  2. leveldb - 并发写入处理
  3. LINQ to SQL语句
  4. tar 分包压缩与合并
  5. APP的线程安全
  6. 房上的猫:while循环与do-while循环,debug的调试运用
  7. 用thinkphp开启伪静态,用wamp开启很快搞定;但是用phpstudy总是开启失败,为什么?
  8. CDN工作机制和负载均衡
  9. Shell脚本 自动部署 SpringBoot 应用
  10. surface link
  11. Ubuntu16.04中nginx除80之外其他端口不能访问
  12. 开源评测系统hustoj-代码解读
  13. vue中富文本编辑框
  14. Mongodb - 二进制安装
  15. Mysql 数据库修改datadir和调整默认引擎要注意的问题
  16. SelectObject函数
  17. jsp页面中日期的格式化
  18. 【apio2007】【ctsc2007】 数据备份 贪心+链表+堆
  19. Java double 精度
  20. OKEX期现对冲JS源代码分享(基于Fmz, Botvs实现)

热门文章

  1. Windows下使用VSCode搭建IDA Python脚本开发环境
  2. 现代 CSS 高阶技巧,像 Canvas 一样自由绘图构建样式!
  3. adb devices出现offline解决方法
  4. uniapp微信小程序返回上一页并刷新数据
  5. 4、PageHelper分页查询
  6. APP上架因收集个人信息问题被拒绝该怎么解决?
  7. 真正“搞”懂HTTP协议07之body的玩法(实践篇)
  8. js 禁用刷新快捷键
  9. 在 K8S Volume 中使用 subPath
  10. 四平方和【第七届蓝桥杯省赛C++A/B组,第七届蓝桥杯省赛JAVAB/C组】