我说说我的看法,可能和市面上主流不一样
vue的模版设计,长远看来是败笔。jsx是正途。预判将来vue会慢慢把jsx提到至少和模版一样重要的文档位置来推广,会有越来越多的人写jsx
vue组件的默认组织模式,就是一个对象里面写 data computed methods,长远看来也是败笔。用函数或者class定义组件会是方向,vue现在就有官方插件可以让你用class加装饰器写组件,vue-hooks也出了,成熟以后也可以用函数写组件。
以上两条的原因主要是项目可维护性的考虑。对象式的组件定义,.vue文件格式,html模版,导致js社区里面主流的编辑器自动话功能都没法用,没法在一个组件里方便查看某个data到底在哪些computed methods和template哪里用到了,没法跨文件追踪导入导出的变量,没法按一个F2之间在项目里跨文件重构变量名。这导致后人接手项目、做大项目的重构改进即为痛苦。
相对来说以上都是react的优点,纯js,js社区里的成果都可以第一时间应用。各种refactor非常方便。
但是这不是vue的本质缺陷,也容易弥补。 我已经用class+decorator+jsx写vue两个多月了,并没有什么问题。
相对而言,react的缺陷:没有使用js语言本身提供的变化监控劫持功能,纯粹自己搞了一套大循环的变动监控机制。这个机制从效率上来讲会比vue用getter/setter/Proxy稍微低一些,但不是本质问题,大问题是这个机制限定了整体项目组件树里面的数据处理方式,引入了很多新概念新规范。vue相对来说比较自由,不同规模的项目可以有不同的选择,小项目不会有不得不脱裤子放屁的写法。
整体上看,作为现代前端框架,核心是m=>v的数据变动监控,a v r 三家用了三种截然不同的思路。至于到底使用对象还是函数还是class来写组件,用jsx还是html``还是template写ui,这些都是可以互换的。现在已经可以做到用99%接近于react的写法来写vue,将来说不定react也有人弄插件可以用template写react。所以最终大家的偏好,会落到对数据监控机制的不同偏好上来。
vue 3.0,几乎就是一个proxy劫持版的react。
【 在 robin79 (>﹏<) 的大作中提到: 】
: 不要那么急于下假定,谢谢。
: 从使用者角度看,vue的流程更先进可不可以?vue至少模板是分开的,因此设计也就可以分开,React我是没看到怎么能很好的融合设计流程(或许有,但是抱歉我没找到),比方说我要导入几个mobirise的模板第一步就先得全转成JSX。Angular模板也是分开的,但是整体用起来太麻
: 然后,我也没觉得vue比React更容易上手谢谢。对我来说React更加容易理解得多了,但是我只是不随意假定别人也会这么想而已。
: ...................
--
FROM 223.72.53.*