我们知道在父子组件是可以相互传递数据的。但往往没有任何关系的组件之间或者是高层组件和底层组件之间也需要传递数据,并且这个数据的共用度很高,会导致组件数据的调用关系特别复杂不好管理,于是希望能把这些共享...
我们知道在父子组件是可以相互传递数据的。但往往没有任何关系的组件之间或者是高层组件和底层组件之间也需要传递数据,并且这个数据的共用度很高,会导致组件数据的调用关系特别复杂不好管理,于是希望能把这些共享数据给抽取出来放到一个对象里面,这个能不能做到呢?完全可以嘛,还记得说过所有vue组件都有继承Vue实例吗?那我直接在Vue实例原型prototype定义数据和函数等不就能实现了嘛
是的,上面的做法确实能实现数据的共享,不过他有一个不足:非响应式的。修改了prototype不能同步到其他组件上。因此Vue官方提供了一个能解决刚才不足的插件:VueX,下面看介绍:
Vuex相当一个状态管理的管家,不要把他想复杂了,这里的状态 完成可以理解为 共享的变量,所有的组件都可从这个管家中拿到这个变量。
这时候就有人一股脑不管三七二十一,什么东西都往VueX塞,大哥别!如果只是父子组件的简单共享,就没必要放到VueX,那什么样的数据我们才放到里面呢?
在实际的开发,一定会存在,不是大概可能,是一定会存在多个页面会使用到相同变量的情况,比如 用户的登录状态,有的界面是允许用户未登陆状态进行操作,有的只能是登陆状态才能使用,那用户的状态可以用token来标识,我把token放到VueX里作为状态,所有的页面能够获取这个用户的登录状态,进而判断是否允许用户操作
本文标题为:Vuex的概念和作用解析
- jsPlumb+vue创建字段映射关系 2023-10-08
- 深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库 2022-12-15
- 1 Vue - 简介 2023-10-08
- ajax实现输入提示效果 2023-02-14
- 基于CORS实现WebApi Ajax 跨域请求解决方法 2023-02-14
- vue keep-alive 2023-10-08
- JS实现左侧菜单工具栏 2022-08-31
- layui数据表格以及传数据方式 2022-12-13
- 关于 html:如何从 css 表中删除边距和填充 2022-09-21
- javascript 判断当前浏览器版本并判断ie版本 2023-08-08