阿星的空间

数据通信怎么做,Vuex有点滥用啊

前言

最近在研究全站缓存状态下的数据复用的逻辑,以 vuex 为主要关键字,在百度谷歌搜了很多资料, 然而大多数都是复制粘贴来的科普文,看得久了有点茫然。

Vuex 被滥用了

在目前已知的这些文章里,vue 开发中主流的一种做法是将数据统统存到 Vuex 里,明明只是页面里展示一个数据,也要从 Vuex 那儿转一大圈儿。

不复用就别用 Vuex

ajax 发一个请求出去,promise 带回来一段数据,然后直接扔页面里,这不是很简单的事儿嘛。

不复用不涉及多页面的数据,没必要整 Vuex 吧。

就算复用也不一定要走 Vuex

如果一段数据,只涉及多个组件共享展示,不涉及修改互动,我觉得也没有必要走 Vuex,这也是我最近在折腾的重点:如何在全站缓存里高效得复用接口数据,略有所得,敬请期待。

什么场景下用什么

  • 全局数据:只有全局用到的数据才有必要用到 Vuex,比如当前登录用户的数据。
  • 单页数据:这数据只有当前页面才用到,整那些复杂玩意儿干啥,门关起来自己玩就是。
  • 父子组件:很多人说过,用事件和$emit。
  • 前后页路由:在页面前进和后退时的数据交流,我的解决方案是用vue-router-then:Vue全站缓存之vue-router-then前后页数据传递
  • 跨页面:最特殊的情况,跨多个页面的数据共用,这个分为两种情况。
    • 一种是客户端自主生成并需要交互的数据,这个还是推荐 Vuex,比如本地的购物车。
    • 另一种是读服务器接口用于展示的数据,这个我还在研究,已经有模糊的想法,初步想法是提炼出数据通性合成同一个对象存储起来并共用。

后语

知识积累是个反复遗忘和记忆的过程,不断提醒自己:多看多写多记录多分享多互动。

原文来自阿星的空间:https://wanyaxing.com/blog/20180801171812.html

X