<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>vue2 与 vue3 的区别</title> </head> <body> <script> let a1 = `vue2的双向数据绑定是利用ES5的api Object.definePropert()对数据进行劫持,结合发布订阅模式的方式来实现的; vue3中使用了es6的 Proxy API 对数据的代理; 优势: 1:defineProprety只能监听某个属性,不能对全对象监听; 2:可以省去for in 闭包等内容来提升效率,直接绑定整个对象即可 3:可以监听数组;`; let a2 = `vue2中定义数据变量是data,创建的方法是在methods中 vue3中是直接在setup中,新语糖是不需要return,相当方便`; let a3 = `vue2与vue3生命周期钩子函数不同; setup obBeforMount onMounted onBeforUpdate onUpdated 需要先引入`; let a4 = `Vue3.x还增加了onRenderTracked 和onRenderTriggered函数 分别是状态变更和状态触发, 调试会用,生产不会`; </script> </body> </html>