Vue3: 追求极致的性能, 把vue2中一些自动化的操作 转为手动操作 -- 监听器的添加
vue2: 采用 ES5 ES2009 的 defineProperty 方案, 为数据项添加监听器 需要为每个数据项添加监听, 消耗更多的资源
vue3: 采用 ES6 ES2015 的 Proxy 代理方案, 为数据对象添加代理 一次性监听多个数据项. 节省资源
采用 TypeScript 语言, 提供更加强大的 强类型 能力, 带有各种静态报错分析
Vue3的新语法
var num = ref(10); --- ES5的definProperty监听
var data=reactive({count:10}) --- ES6的Proxy实现监听
两种监听方案写法不同,先在html中写两个按钮对应两个变量
使用路由系统的router-link实现跳转的用法与vue2是相同的,不同之处在于编程式跳转。 在vue2中,各种资源都存储在vue对象中,用this.$router直接使用,但在vue3中,各种资源都必须手动引用,给按钮绑定方法,打印this,找不到$router,由此可知,$router并没有被引入到proxy里
手动引用useRouter(),添加一个$router,再利用push实现页面跳转
路由传参:
还是这个按钮,给即将跳转的页面传递两个参数
也是一样的,没有自动的功能,只能手动添加,这里添加useRoute(),查找到参数存放的位置,放到html中就可以显示到页面上了。
router和route的区别
Vuex:全局的状态共享,把数据存放在共享的 state中
全局的变量和方法都放在index.ts中
但是Vue3不支持vuex的辅助函数,Vue3兼容vue2的语法,可以用vue2的代替,写在setup外面,别忘了引用,
如果要使用$store,还是需要用到useStore()方法,而且一定要引用。