我们知道在父子组件是可以相互传递数据的。但往往没有任何关系的组件之间或者是高层组件和底层组件之间也需要传递数据,并且这个数据的共用度很高,会导致组件数据的调用关系特别复杂不好管理,于是希望能把这些共享...
我们知道在父子组件是可以相互传递数据的。但往往没有任何关系的组件之间或者是高层组件和底层组件之间也需要传递数据,并且这个数据的共用度很高,会导致组件数据的调用关系特别复杂不好管理,于是希望能把这些共享数据给抽取出来放到一个对象里面,这个能不能做到呢?完全可以嘛,还记得说过所有vue组件都有继承Vue实例吗?那我直接在Vue实例原型prototype定义数据和函数等不就能实现了嘛
是的,上面的做法确实能实现数据的共享,不过他有一个不足:非响应式的。修改了prototype不能同步到其他组件上。因此Vue官方提供了一个能解决刚才不足的插件:VueX,下面看介绍:
Vuex相当一个状态管理的管家,不要把他想复杂了,这里的状态 完成可以理解为 共享的变量,所有的组件都可从这个管家中拿到这个变量。
这时候就有人一股脑不管三七二十一,什么东西都往VueX塞,大哥别!如果只是父子组件的简单共享,就没必要放到VueX,那什么样的数据我们才放到里面呢?
在实际的开发,一定会存在,不是大概可能,是一定会存在多个页面会使用到相同变量的情况,比如 用户的登录状态,有的界面是允许用户未登陆状态进行操作,有的只能是登陆状态才能使用,那用户的状态可以用token来标识,我把token放到VueX里作为状态,所有的页面能够获取这个用户的登录状态,进而判断是否允许用户操作
本文标题为:Vuex的概念和作用解析
基础教程推荐
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- Ajax发送和接收请求 2022-12-15
- HTML clearfix清除浮动讲解 2022-11-20
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- JS滚动到顶部踩坑解决记录 2023-07-10
- Ajax+smarty技术实现无刷新分页 2022-12-15