我写了一个vue全局状态管理器,被喷的五体投地

广告位招租
扫码页面底部二维码联系

在知乎上看到一个问题,问“vue3下vu原创内容,盗版必究。未经授权,禁止复制转载。ex是不是就没意义了”,便随手回答了一下【本文首发于唐霜的博客】【关注微信公众号:wwwtangshuangnet】,调侃自己对vuex本身的设计就表示不认【未经授权禁止转载】【原创内容,转载请注明出处】同,主要的理由是vue本身支持直接修改属【本文首发于唐霜的博客】【关注微信公众号:wwwtangshuangnet】性完成响应式,而vuex却要学redux本文作者:唐霜,转载请注明出处。【本文受版权保护】那一套定义mutation、action【关注微信公众号:wwwtangshuangnet】著作权归作者所有,禁止商业用途转载。之类的,过于复杂,真正简单的方法,应该像【转载请注明来源】转载请注明出处:www.tangshuang.netvue本身一样,直接修改属性。于是写下了【版权所有,侵权必究】【版权所有,侵权必究】自己的想法:

原创内容,盗版必究。【转载请注明来源】
const store = new Store({ a: 1 })
app.use(store)

然后在组件里面修改:

【版权所有,侵权必究】【版权所有,侵权必究】
this.$state.a = 2

这样看上去多舒服,思路上和vue一致,定著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net义全局状态时,也不需要复杂的mutati【版权所有,侵权必究】【原创不易,请尊重版权】on, action,只需要一个对象。这【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】才是最符合直觉的vuex使用方式吧。

著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshu本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.netang.net【本文受版权保护】【访问 www.tangshuang.n原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。et 获取更多精彩内容】

简单写完上面的想法之后,我就没管了,没想转载请注明出处:www.tangshuang.net【本文受版权保护】到过了两天,这问答下面都积累了50条评论【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】,点赞也蹭蹭蹭的在增加,感觉要火呀

【原创内容,转载请注明出处】【未经授权禁止转载】本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshu【转载请注明来源】【本文受版权保护】ang.net

本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。

但是,当我看完这些评论之后,却高兴不起来【本文受版权保护】原创内容,盗版必究。,因为在这么纯粹的想法面前,各种抖机灵的未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。评论都出来了。其中一个重要的讨论点在于,【版权所有,侵权必究】【原创内容,转载请注明出处】基于dispatch(‘SO【访问 www.tangshuang.net 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。ME_NAME’的方式有利于【关注微信公众号:wwwtangshuangnet】【原创内容,转载请注明出处】调试,找到状态被修改的位置。我对这种辩解【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。嗤之以鼻,大部分人根本没搞懂redux里【关注微信公众号:wwwtangshuangnet】【转载请注明来源】面dispatch的设计思想,就在这里各【本文受版权保护】【作者:唐霜】种吹捧,他们无非把dispatch当一个原创内容,盗版必究。【版权所有,侵权必究】带字符串标记的update看,而人家真正【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。的设计是send(message)的理念本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。,躺在两条河里还说洗的一个澡,我也是有点未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】服。

【未经授权禁止转载】【未经授权禁止转载】

不就是想追踪状态被修改的位置吗?我想,既著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。然都已经提出来了,不妨实现吧,毕竟我造轮【访问 www.tangshuang.net 获取更多精彩内容】【关注微信公众号:wwwtangshuangnet】功力还是挺强的。简单翻阅了vue的文档,著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net花了2个多小时,写了一个stupid-v转载请注明出处:www.tangshuang.net【转载请注明来源】ue库。

【关注微信公众号:wwwtangshua【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】ngnet】【关注微信公众号:wwwtangshua未经授权,禁止复制转载。未经授权,禁止复制转载。ngnet】本文作者:唐霜,转载请注明出处。

https://github.com/t原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】angshuang/stupid-vue原创内容,盗版必究。【原创内容,转载请注明出处】x

原创内容,盗版必究。【版权所有】唐霜 www.tangshu【原创内容,转载请注明出处】未经授权,禁止复制转载。ang.net【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.netang.net

使用方式如下:

本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】【原创不易,请尊重版权】

【版权所有】唐霜 www.tangshu本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。ang.net【访问 www.tangshuang.n未经授权,禁止复制转载。未经授权,禁止复制转载。et 获取更多精彩内容】

著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshu转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。ang.net本文版权归作者所有,未经授权不得转载。

未经授权,禁止复制转载。【版权所有】唐霜 www.tangshu【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.netang.net【访问 www.tangshuang.n【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】et 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。

不得不说,vue3的api设计比vue2【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。合理了非常多,在vue2时代,我做相关工【版权所有,侵权必究】【访问 www.tangshuang.net 获取更多精彩内容】具的时候,非常吃力,但是到了vue3,所【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。有api都是顶级暴露的,想要什么能力都可【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net以组装出来,很厉害。

【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。【本文首发于唐霜的博客】【原创不易,请尊重版权】

一通操作下来,这个包就这样发布了。

【本文首发于唐霜的博客】转载请注明出处:www.tangshua【本文首发于唐霜的博客】【本文受版权保护】ng.net【未经授权禁止转载】【版权所有,侵权必究】

等一下,状态修改追踪呢?我利用了Erro未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。r的特性,抓取它的stack,直接可以得原创内容,盗版必究。【本文受版权保护】到状态修改时,是由哪一行代码造成的。

【版权所有】唐霜 www.tangshu未经授权,禁止复制转载。原创内容,盗版必究。ang.net【转载请注明来源】

著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。

未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。

看上图,通过点击浏览器里面的调试代码,就【作者:唐霜】【原创不易,请尊重版权】可以直接定位到源码的位置,这比所谓vue【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net devtool给的一大串跳来跳去,只能【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】看数据流,最后你还是不知道具体哪个位置带【转载请注明来源】【版权所有,侵权必究】来的变化来的更直接吧。

转载请注明出处:www.tangshua【原创内容,转载请注明出处】【原创内容,转载请注明出处】ng.net原创内容,盗版必究。【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】ang.net

多好。

本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。【访问 www.tangshuang.n著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。et 获取更多精彩内容】

故事就结束了

【本文受版权保护】本文版权归作者所有,未经授权不得转载。

….并没有。“你这不符合单向本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】数据流的理念”,WTF??在vue里面你未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。跟我讲单向数据流的理念,入魔了吧。

本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。未经授权,禁止复制转载。【原创内容,转载请注明出处】

【版权所有】唐霜 www.tangshu未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】ang.net【转载请注明来源】本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。

我大部分时间都是用react来写项目,没【原创内容,转载请注明出处】本文作者:唐霜,转载请注明出处。曾想vue发展这么快,vue3真的很好用本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。,唯一的不足在于它强依赖构建工具,如果能【转载请注明来源】【原创不易,请尊重版权】做到vue2一样直接浏览器引一个库,在运【作者:唐霜】本文版权归作者所有,未经授权不得转载。行时编译,那就很方便了。不过随着前端发展本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】,这种依赖工具的框架慢慢成主流,也是正常转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】的。

【访问 www.tangshuang.n【原创不易,请尊重版权】【作者:唐霜】et 获取更多精彩内容】未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。

网络上会喷的人很多,但是,看一个人行不行【版权所有,侵权必究】【未经授权禁止转载】还是要看他的行动力,只会喷不会造,这种人【作者:唐霜】【作者:唐霜】不必理会,提升自己的内功才是王道。

【作者:唐霜】【原创内容,转载请注明出处】
已有1条评论
  1. 1188 2021-08-27 15:39

    确实直接new一个Vue拿来用其实就挺好