为什么会有人说 Vue.js 简单?

2016-07-22 19:18:52 +08:00
 ianva
作为用过 angular 1 和 react 开发过很多项目的人来看, vue 的概念上比 angular 1 还多,从 compontent , directive 的概念上来说一个概念就超过一个 react 的概念,组件设计的复杂度上讲也是。
用过 angular directive 写过很多组件的人来说,用过 react 就觉得 angular 组件设计过渡,项目组件化其实很难,很多概念来的还不如 react 简简单单的概念写的方便
而 Vue 是延续了很多设计,真搞不懂为啥会有人说 Vue 简单,就是因为有中文文档和 generator ?
49830 次点击
所在节点    前端开发
134 条回复
ianva
2016-07-23 01:56:52 +08:00
@otakustay 另外 react 也有 http://wix.github.io/react-templates/ 这样 ng 风格的模板,原封不动,如果真觉得不爽可以整起来,当然需要在编译阶段做些事情,也略显麻烦
otakustay
2016-07-23 02:00:11 +08:00
@ianva 你没有意识到,你所说的这些 react 的优势,所谓的限制不易出错、被迫闭包、多用 map 、 filter 、 reduce ,每一件对于不那么优秀的开发者都是一种负担
世界上更多的是不会 filter 不会 map ,只会写个数组 for+push 。更多的是代码随处写 F5 跑起来就关机回家。更多的是根本无法理解"只执行一个值"是怎么回事的人。
所以, Vue 就是"简单""好用",不在于 API 多少,而在于不受限制、不需要听你的哲学、不需要接受思想的洗礼,我很弱但我能让页面展现出来给老板交差,我能下班回家看电影逛街,这就是简单好用
otakustay
2016-07-23 02:01:05 +08:00
@ianva 你说这些第三方的完全没用,我觉得你是太过优秀了,看不到最底层的人是怎么写代码干活的了。。。
ianva
2016-07-23 02:04:13 +08:00
@otakustay 从这点来说其实是模板上的问题,所以 http://wix.github.io/react-templates/ 这样的方案完全可以解决,就算不解决并不是个劣势,如果抛开这些我不觉得 react 学习成本比 vue 高,如果说什么哲学,那么 ng 的声明式模板也是哲学,对你说的人群别人还觉得不如 ejs 呢
ianva
2016-07-23 02:05:28 +08:00
@otakustay 见识多了,毕竟干了这么多年,你说的那些人群也必然不是 vue 的定位人群, vue 这些概念太复杂了
otakustay
2016-07-23 02:12:54 +08:00
@ianva 这不是优劣势的问题,对于大部分的人,他们会做的就是:

1 、把官网的例子 copy 过来
2 、胡乱改改变量,加点逻辑
3 、跑起来看看

如果没跑起来,就整个蒙蔽了

你让他们找第三方的 react-template ?让他们再集成这种 addon ?你干脆直接让他们滚蛋回家比较合适。
在这一点上, Vue 就能做到,随便水平怎么样,拿着也许本来就已经写了一大半的大学上课的水平的 HTML ,按着官方例子写个 data ,在 HTML 上吧 src 改成 v-src ,把 onclick 改成 on-click ,哎呦跑起来了
所以 Vue 就是"简单"的,这个话题讨论的"简单"就在这里

你让他们用 EJS ,他们应该也会高兴的,但它们还要去写 jQuery ,去写 attr 、 prop 、 on 、 off , Vue 告诉他们可以这样那样就不用写着写东西了,他们就更高兴了,而且也没给他们什么额外的负担(人家连 doc 都不看,有个啥负担可言,写错了就上 CSDN 问就是了),不久照样写 HTML 么,不就 attr 前面加个 v-,事件前面加个 on-么,对于这些人, Vue 的 modifier 都是不需要知道的, jQuery 是 e.preventDefault , Vue 里也就一样是 e.preventDefault ,毫无迁移成本,这就是"简单"

我知道 React 很优秀,但 React (以及 Flux )天生是为了应对 Facebook 这种级别的应用而生的(这是 Facebook 自己说的),对于那些一辈子也见不到这个级别的东西的人来说,他们不会懂

我再往简单的说,一个 JSX 能吓退各种二三线城市小公司 80 %以上的程序员,光听到"React 的组件是用 JSX 写的,不是 JS",他们就已经和 React 说拜拜了
otakustay
2016-07-23 02:14:51 +08:00
@ianva 不,这些人恰恰是 Vue 的人群,因为 Vue 做到了 copy paste 可以跑出个项目来, React 没有做到,拿着 React 的 demo 可以弄出个 Hello World ,接下去怎么办,他们一筹莫展
这是我实际接触过的情况, ng1 他们也能接受,反正 copy paste 改改变量能跑,但 React 他们真的不行
ianva
2016-07-23 02:15:07 +08:00
@otakustay 是的,他们会用 jquery 的他们不会用 vue 的,因为双向绑定的概念对他们来说太难了,接受不了,我觉得用 Vue 的人群已经算是很有基础的了
otakustay
2016-07-23 02:17:34 +08:00
@ianva 有一类人很能接受 Vue 和 ng1 ,就是 java 写的不错但前端不行的人,他们可以接受绑定这个概念,但是对于组件,对于树形结构,完全没办法理解,那么对他们来说,一堆数据+一个 HTML +写写 js 改数据,是在开心不过的了,这就是我厂现在 RD 写页面的现状- -
ianva
2016-07-23 02:19:49 +08:00
@otakustay 那人群又不一样了,其实讨论的有点过了,其实方便的就几点,声明模板,数据双向绑定,剔除了 ng1 历史遗留的 module
ianva
2016-07-23 02:24:04 +08:00
@otakustay 之前有个 php 的工程师,被要求 cto 用 angular 写一个项目,然后 4 个月没搞定离职了,然后我看了下 2000 多行的 controller 全挂 scope ,没敢碰代码,然后他们团队的 php 架构师维护这项目最后坚定的说一定不能用 angluar 这种技术,必须 jquery ,所以 vue 相对来说还是需要水平的
mdluo
2016-07-23 03:28:53 +08:00
LZ 是真的懂而且都比较深入的研究过,我们这些只用过一个或者只看过别人写的体会而没有自己实际体会的看看就好了。

这样下去迟早会把尤雨溪炸出来,或者是在其他地方

另外感觉 vue 在国内的蜜汁好评率是不是因为每当中文社区里出现反对声音的时候,老尤就会出来用自己最丰富的 vue.js 使用经验把反对者打败
coffce404
2016-07-23 07:50:53 +08:00
看个一两小时文档就能入门的框架,说他简单很正常。
双向绑定只是一个表单语法糖,以为 vue 就是双向绑定的人,明显是不理解 vue 。 vue 的核心是优秀的组件设计,与 react 最大的区别只是 render 写法和原理的不同,另外 api 设计更加简洁,就这点区别。
sox
2016-07-23 07:53:40 +08:00
你没看尤小右写的框架对比?

但就一点不需要专门的性能优化就比 React/angular 显得简单。
SuperMild
2016-07-23 07:58:21 +08:00
@mdluo 可见有一个活跃的高手对项目发展多么重要
sox
2016-07-23 07:59:24 +08:00
ps. 我没听别人说过 vue 简单,只是说好用。
readonly
2016-07-23 09:26:53 +08:00
项目中用到了比较深度的自定义指令,官方的文档没有丝毫用处,必须得去看 v-for 源码。

但是我得说说我为什么要写这种指令: 因为我需要完全声明式的语法,去构造所需的数据结构。我不能让开发人员去写一堆的 map filter reduce 。大多数人其实都是会类似 jsp 之类的技术的,他们希望用声明式的写法去处理模板中的数据。
相对于 react ,对,它很 js 。但大多数人的 js 水平实在是渣渣,函数式,高阶组件,不懂 js 的人就是不懂,不用指望他们懂。

概念多是因为功能多, react 要做到 vue 默认自带的功能,也需要了解很多东西,这是拿菜刀和瑞士军刀在比, vue 你可以完全不用指令,全部用 js 和组件,但是这可能是徒增烦恼,因为就是有父子作用域相互交织会比较直观的场景。

PS: react 光光是 jsx 就让我不知道怎么解释给小伙伴了,不然就不会有那么多文章给它正名了。而且要看懂那些文章,你得知道 webpack , bable-react ,。对于 vue 来说,只需要知道 .vue 文件会进行编译就可以了,里面依然是很传统的写法。
题主就是那种会说: 语文好难,概念好多,东西好多,要学的好多,还是数学直观,容易懂的人了吧?
zhuangtongfa
2016-07-23 09:48:54 +08:00
我们跟你讲简单易用,你跟我们讲可维护性,我们跟你讲语法,你跟我们讲 api 设计,这还讨论个啥
react 本身定位就是做中大型项目,vue 定位是中小型项目,你每天做 fackbook 那种大型项目?
就中小型项目来说,做同样的事,vue 开发快这不是简单吗?提供给你的东西是多,但都是有用的,难道还自己造轮子
就跟你拿 java 和 php 对比,你问的是为什么 php 简单易用,我也跟你讲 php 的简单易用,你非跟我扯可维护性,那我也没什么话好说了
XueSeason
2016-07-23 10:09:22 +08:00
想到一句话,你永远叫不醒一个装睡的人。
zhuangtongfa
2016-07-23 10:13:34 +08:00
而且你说 vue 的 api 多,概念多
api 多就难?vue 的 api 里哪一个不是针对实际开发的功能
别人给你一整套武林秘籍,灵活使用,你说难,非得抱着一本如来佛掌在那练

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294276

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX