为什么会有人说 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 10:24:12 +08:00
@coffce404 vue 的组件设计恰恰是他的问题,用过 ng1 就会知道有多少毛病,问什么 ng2 会这样改进,由于 directive 和 compontent 的设计复杂所以,写组件的时候要注意的东西其实很多, react 这点上来说就比较容易,我举个例子,当我们想把某一部分的业务做组件独立的时候,其实很多时候做没做的原因在于成本,恨不得一个 function 就解决问题,当然你 creativeClass 其实就写了很多东西,还要考虑生命周期,但 vue 的 directive 和 compontent 其实要考虑的更多,那么这个时候我们很有可能就放弃了把不分业务独立这件事情,
另外在组件的设计上虽然提供了很多功能,其实是因为内部的复杂导致必须对外暴露很多东西才让一些东西可以实现,这也是无奈之举,有所感慨是因为从 ng1 到 react 的对比,同样的 directive 确做不到规则更少更的简单 react compontent 能方便做到的东西
ianva
2016-07-23 10:27:23 +08:00
@zhuangtongfa 从双向绑定和模板的方面说,这确实是简单,和 ng1 一样,但我们能说 ng1 也很简答么,但其实很多概念涉及到的东西非常多,概念多意味着作者为了制造这些概念势必要做很多特别的处理,也就意味着做一些东西很有可能会踩很多坑,从整个库来看确实东西太多,组件设计的过于复杂
ianva
2016-07-23 10:29:42 +08:00
@sox 只讲对自己有利的东西 react 的真正优点可不是 Virtual DOM ,组件设计上的轻巧比 vue 好太多了 ,而另外设计上一点也不比 angualr 简单,当然 ng1 有历史遗留问题, ng2 没法比了
ianva
2016-07-23 10:33:37 +08:00
@readonly 模板上来说, js 的原生是易于理解,声明式模板的设计也很好,这没的说,当然有些时候会有局限性,所以我想说的是,其实对于切菜来说菜刀最好,给瑞士军刀其实不好用,从这点说 vue 是复杂的,另外你说的那些其实 webpack bable , vue 一样需要
morethansean
2016-07-23 10:41:19 +08:00
vue 看 10 分钟就能直接用起来,
而 ag1 还要先学一堆概念。
大多数人先只有一个简单的需求,抱着我要实现一个 xxx 来看看你这个框架应该怎么实现,对于框架其他的功能我先了解了解以后有了复杂的需求的时候再用。从这点来说 vue 真是简单得不能再简单了。
这大概也是你说的 “如果谈简单,其实仅仅是双向绑定时候的生产力吧” 。
ng1 你除了要考虑各种各样的问题你还需要对他的一些实现有一定的了解,不然就是各种各样的性能坑和谜之 misbehavior 等等。而 react 对于某些人来说,光是环境搭建 IDE 配置可能都要弄个半天,在他们现有的技术栈上 vue 真是太简单了。
其实也就是, vue 并没有脱离他们传统的开发模式到多远,没有给他们带来那么多一定要了解的或者和之前不同的新概念。看看 ag1 非得在文档里不停地 DIDIDIDIDI ,还科普你 DI 是什么 blablabla ,强行要把这么一套概念告诉你,解释这套系统的设计模式。简简单单就设计成这样了,告诉你应该这么用就够了,比如像 Polymer 一样,对很多人来说没那么混淆视线。
cljnnn
2016-07-23 10:49:31 +08:00
vue 很简单了,我以前连 js 都没有怎么用过。学了半天 vue 就做了一个查看股票行情的网页,有排序,删除,添加。
plqws
2016-07-23 10:58:02 +08:00
ng 的概念太多了, vue 只要按照官方 demo 写完自己改改就能跑了,而且写着写着自己就能理解了。 ng 就是你写完还不知道这个是干嘛用的。
CupTools
2016-07-23 11:01:08 +08:00
@morethansean +1

上次 hackathon 的时候跟队友用 react 环境配置弄了 N 久
wslsq
2016-07-23 11:05:34 +08:00
很喜欢 vue 啊,对 vue 有偏见的人真心不明白
loveyu
2016-07-23 11:48:30 +08:00
当你写了一堆后台逻辑,然后 BOSS 让你写个后台。面对一大堆数据和交互,我想 vue 的双向绑定和那个啥是最简单的,刷新下就能看到效果多好。简单不简单,还是看怎么用吧。
zhuangtongfa
2016-07-23 11:58:42 +08:00
react 本身是简单,只有几个 api,问题是你开发就用这几个 api 就够了?给你把菜刀,你觉得切菜用菜刀挺好的,如果是切其他东西呢?react 生态复杂,小白能轻易上手?
起步就要配 webpack,babel,学 jsx,用着用着发现要组件通信,props 不够用,又得引入 event/message,然后又说不够优雅,又得引入 flux 概念,学着学着又了解到 redux,大多数时候只是想做个移动页面,在移动端使用打包大,还得学 webpack 优化,需要了解那么多东西?
vue 说真的,光是双向绑定,项目中使用就能减少很多工作量了,你确定 react 能做到?
别扯维护性,api 设计,api 怎么设计的那是作者的事,不在讨论范围呢,只讨论 react 和 vue 哪个更简单
blackboom
2016-07-23 12:17:49 +08:00
react 学习曲线比陡峭,正如楼上所说的,路由 flux redux 接受起来需要一段过程,而 VUE 相对来说就比较快一些
coffce404
2016-07-23 12:44:47 +08:00
@ianva 拿 ng1 的经验类比 vue 就是错的,比起 ng1 , vue 更类似 react
heganj
2016-07-23 12:46:21 +08:00
我只用过 react ,未用过 Vue 和 angular 。
react 的强大之处在于生态,常用的组件基本能 google 到
react 也能操作 svg ,跟 d3 配合使用很爽
服务器端生成 html ,反而比较少时候需要用到

不知道 vue , ng 在这些方面如何
shulen
2016-07-23 13:14:27 +08:00
vue 确实简单,感觉 ng 难不少
zonghua
2016-07-23 13:28:46 +08:00
@cljnnn 然而我是属于用 jQuery 习惯了,用 Vue 改不回来。
reverland
2016-07-23 14:03:15 +08:00
@zhuangtongfa vue 用着用着也是,起步就要配 webpack,babel,学 jsx,用着用着发现要组件通信,props 不够用,又得引入 event/message,然后又说不够优雅,后来 vuex , 在移动端使用打包大,还得学 webpack 优化...
NovemberEleven
2016-07-23 14:19:50 +08:00
汗,我到现在还是 jQuery + handlebars ,主业不是做前端
zhuangtongfa
2016-07-23 14:49:41 +08:00
@reverland 呵呵,真不好意思,我只知道我用 vue-cli 生成的项目脚手架,webpack 都不用碰,而且作者做了优化处理,build 出来的 js 才 100 多 kb,通信我用 eventbus,简单高效,别说你移动端还用 react
undozen
2016-07-23 15:29:28 +08:00
这个讨论有意思

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

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

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

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

© 2021 V2EX