VUE day_10(7.28)监听器、路由系统、vuex

复习:

Vue3: 追求极致的性能, 把vue2中一些自动化的操作 转为手动操作 -- 监听器的添加

vue2: 采用 ES5 ES2009 的 defineProperty 方案, 为数据项添加监听器 需要为每个数据项添加监听, 消耗更多的资源

vue3: 采用 ES6 ES2015 的 Proxy 代理方案, 为数据对象添加代理 一次性监听多个数据项. 节省资源

采用 TypeScript 语言, 提供更加强大的 强类型 能力, 带有各种静态报错分析

  • 新的语法: 变量名:类型名
  • 对象类型, 提供新的关键词 interface 接口. 为对象类型制定标准

Vue3的新语法

  • template中 不再要求唯一的根元素
  • script  新的配置项 setup : 相当于vue2的创建周期. 数据创建时触发。 在这个周期中, 制作 数据项data, 方法methods, 监听器watch, 计算属性 computed 。最终返回到页面上。
  • 数据项修改为带有监听器的 ref(): 把一个数据封装到监听器里, 底层是 defineProperty。 reactive(): 把一个 对象类型进行监听, 底层是 Proxy 。toRefs(): 把代理方案管理的对象 拆分成多个 由 defineProperty 方式监听的数据
  • axios: 只能局部引入
  • 组件: 同 vue2 . components 目录, props声明参数
  • 生命周期: 挂载 : onMounted

一、监听器

var num = ref(10);  ---  ES5的definProperty监听

var data=reactive({count:10}) --- ES6的Proxy实现监听

两种监听方案写法不同,先在html中写两个按钮对应两个变量

扫描二维码关注公众号,回复: 14513399 查看本文章

二、路由系统

使用路由系统的router-link实现跳转的用法与vue2是相同的,不同之处在于编程式跳转。 在vue2中,各种资源都存储在vue对象中,用this.$router直接使用,但在vue3中,各种资源都必须手动引用,给按钮绑定方法,打印this,找不到$router,由此可知,$router并没有被引入到proxy里

手动引用useRouter(),添加一个$router,再利用push实现页面跳转

 路由传参

还是这个按钮,给即将跳转的页面传递两个参数

也是一样的,没有自动的功能,只能手动添加,这里添加useRoute(),查找到参数存放的位置,放到html中就可以显示到页面上了。

 router和route的区别

  •  带r是跳转的
  • 不带r的是读取路由的参数

三、vuex

Vuex:全局的状态共享,把数据存放在共享的 state中

全局的变量和方法都放在index.ts

 

 但是Vue3不支持vuex的辅助函数,Vue3兼容vue2的语法,可以用vue2的代替,写在setup外面,别忘了引用,

 如果要使用$store,还是需要用到useStore()方法,而且一定要引用。

猜你喜欢

转载自blog.csdn.net/m0_70328115/article/details/126055461