请求不存 vuex 的数据这样写,感觉多此一举啊,贼鸡儿不好维护。单独开个 API 文件写接口不更好吗? - 知乎提问
目前我认为这种做法确实是多此一举。
vue 组件首先作为组件来说应当满足高内聚,低耦合。
同一个父组件,引入了若干不同子组件,但是不同子组件间存在相同请求数据情况,尤其是子组件上到一定数量时,往往是根据页面展示区块划分组件,这种现象就更加明显。一般大家都是如何避免这种情况的,也就是避免二次相同请求 - 知乎提问
该咋请求咋请求,把缓存放在 http 请求层,也就是 fetch 或 ajax 模块。这样不会对原有的代码造成太多影响,用起来也更自然
当然,你这种情况可以把获取数据的方法统一封装在父组件,子组件可以去继承,也可以去 inject
再多说两句,不要强行上 vuex,不要强行把数据传来传去,设计越多包袱越重,设计的意义一定是让复杂的事情变得简单,就假设有个新人要过来维护你们的项目,它能不能快速上手。
唉,维护接手了太多的项目,见过了太多的为了设计而设计的架构,何苦呢
结合其他回答,我理解的是:
协议的实现有没有要求客户端或者服务端需要维护一个状态。比如 tcp 传输需要经过握手来初始化事务(数据完整性的校验等),所以它是有状态的
显然 http 协议本身并没有要求这个,而 cookie 或 session 是浏览器和服务器在 http 协议之上,通过每次给本身并没有状态的请求中添加上某些约定的字段来实现的状态标记
再拿 udp 举例子,它也是无状态传输协议的一种,它只负责发送数据并不需要知道上一次和谁连接过。而如果你每次通过 udp 传输的时候都带上某个固定字段,实际上这种行为就类似于 cookie 或 session,是应用层的行为而不是协议层
支持循环引用的 js 对象深拷贝算法