吊带公主裙|为什么我们放弃了Vue?Vue和React深度比较( 六 )


Redux
吊带公主裙|为什么我们放弃了Vue?Vue和React深度比较Redux是React上比较常用的状态管理方案 , 其设计思想非常简单(见上图) , 可以独立使用 , 相关代码容易迁移到不同平台 。 衍生出周边替代方案也很多:

  • 重击式
  • redux-promise
  • Redux-Saga
  • 可观察到的
选型可以参考这里&这里 , 我们用saga比较多 , 处理静态问题等比较简单 , 起步多看看文档就可以 , 也不难 。 下面这张图可以帮助你理解几个方案之间的关系 , 利弊权衡 。
吊带公主裙|为什么我们放弃了Vue?Vue和React深度比较相关插件也很丰富 , 参考:Redux Middleware 。 你会发现很多你想要的东西Vuex都木有!
“既然这样 , 我在Vue上用Redux就行了”
也行 , 毕竟这样以后迁移到React会简单点 。
万恶之源this指针写过React函数组件的同学都知道 , 引用类组件 , 函数组件少了this指针 , 代码简化 , 清晰多余 。 而这个问题在Vue上更为严重 。
有人觉得这是优点 , 方便使用 。 等你代码量上去了再来说话 。
当项目多人协作的时候 , 或者承接某人某祖传代码 , 你不分段搜索 , 你都不知道这个上面挂了羊头还是狗肉 。
  • 这个.ajax
  • 这个.http
  • 这条信息
  • this.wtf…
正如一位网友评论:
那东西就是总体作用域 。 拿“允许在分成作用域上随便放东西很方便”作为优点的话 , 和“允许随地大小便会很方便”有什么区别……
写C语言的新手都知道类别变量不要随意用 , 这满天飞的this , 张三读不懂 , 李四看不懂 , IDE也不懂 。 而且这是官方推荐写法 , ╮(╯▽╰)╭(说大规模不太准确 , 应该说是组件作用域)
想起我以前写的Vue UI库 , 叫SUE-UI , sue?很快的样子 。 为了避免以后和其他插件冲突 , 插件使用都是:
  • this 。 $ su_message
  • this 。 $ su_modal
  • 这个 。 $ su_toast
往事不堪回首啊!
最后框架功能上 , 暂时没有发现Vue做的来React做不来的事情 , 反过来也一样 , 两个框架都能满足功能需求 。 工程实践上 , 由于转换性 , 代码组织 , 粗略升级 , 测试 , 开拓让我们最终放弃了Vue 。
在Vue中你操作的是定义好的对象 , React中你操作的是一个函数 。 所谓前端开发 , 本质就是在编写下面几个函数 。
S = async(A1)S = sync(A2)UI = f(S)显然 , 阵营对此的抽象更为彻底 。


推荐阅读