融合设计流程是指什么,没听说过这个词?如果是说设计那边把东西给你直接生成代码,mobirise 不知道,但是目前最火的 sketch 跟 react 的交互有大量的工具。如果你想说的是 html-in-js,那么这已经不是个问题了,现在大量文章在洗脑为什么 css-in-js 是好的设计,反正我已经被洗过来了。
vue 比 react 更容易上手也并不是什么随意假设,很关键的一点就是 vue 的文档非常好。大量的文章尤其是比较类的,普遍都认为 vue 的学习曲线最低的。再加上数据双向绑定,跟传统事件对应得上的 watch,跟 react 上来都不知道怎么更新 input 比起来,难度系数不止低了一点半点。另外用 react 需要对 node、npm、babel、webpack 等一系列工具有一定程度的了解,比起 vue 能直接用传统方式写(react 也曾经可以实时把 jsx 翻译成 js,大概16年就不再支持了),以及开箱即用的 vue-cli,对于新手来说也不是那么容易把代码跑起来。
react 的概念要比 vue 更清楚,虽然文档组织的并不怎么好,却很容易看懂设计理念。vue 有几个很明显的坑,首先就是双向绑定,这在 react 里是完全禁止的。接着 data 的数据更新方式,这是由于 get/set 实现带来的问题,在 vue3 换成 proxy 之后会解决,但是新手搞不清为什么没更新。接下来,computed 不可避免的会用出循环引用来,这点 react 也不是不会发生,但除非脑回路惊奇还是没那么容易写出来的。watch 也是很可能被滥用的一个功能,导致逻辑容易写不容易读,回到找不到数据为什么变的老路,在 react 里面就不存在这个问题。
redux 跟 vuex 比起来,需要额外封装一层 container。这个虽然看起来并不方便,但是却强制解耦控件和 store,一旦需要重用的时候,就体会到这个设计的好处了。所以现在写 vue 的控件的时候,我也会专门为 vuex 封一层控件出来,然而 vue 这边又没有 hoc,写起来就会非常啰嗦。
redux-thunk 已经过时了,现在流行的是 redux-saga。react/redux 从骨子里贯彻的就是的理念,怎么处理 side effect 自然是个永恒的话题。目前也不能说 saga 就是最佳实践了,但至少人家也是从几十年前的论文里来的概念,跟 thunk 这种工程来的东西比起来,学院派的理论更适合学院派的 fp。vue/vuex 这边则是把 fp 都封装起来了,表面上看不到痕迹,导致理解起来就会比较痛苦。一个 action 产生几个操作,需要几个 ticks、每个操作是在哪个 tick 发生我是不确定的,但放在 react/redux 里面我就很清楚哪些操作是同步的,哪些是异步的。
react 也不是没有问题,比如官方推荐的手动 bind(this) 就很啰嗦,再比如没有内建类似 computed 的功能,很容易每次都重新生成新函数,导致控件重绘和 memory leak。这些也是 react 比 vue 更难学的原因,没有建立正确的理念的话,很容易写出 anti-pattern 的代码。至于什么是 anti-pattern,官方 blog 里有个很好的例子:
https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
现在轮到你了,说说 vue 哪里比 react 的设计强了
【 在 robin79 (>﹏<) 的大作中提到: 】
: 不要那么急于下假定,谢谢。
: 从使用者角度看,vue的流程更先进可不可以?vue至少模板是分开的,因此设计也就可以分开,React我是没看到怎么能很好的融合设计流程(或许有,但是抱歉我没找到),比方说我要导入几个mobirise的模板第一步就先得全转成JSX。Angular模板也是分开的,但是整体用起来太麻
: 然后,我也没觉得vue比React更容易上手谢谢。对我来说React更加容易理解得多了,但是我只是不随意假定别人也会这么想而已。
: ...................
--
修改:eGust FROM 101.98.83.*
FROM 101.98.83.*