Vue 我从 Vue.js 回到了 jQuery

mingyuan0715 · 2016年10月19日 · 最后由 bestrub 回复于 2023年12月15日 · 25831 次阅读

之前用 Vue 做过一个纯前端的项目,与后端通过 api 交互数据,深深的感觉到了 Vue 的简约和强大。

最近做一个 rails 项目也尝试着用上了 Vue, 发现 jQuery + turbolinks + ujs + erb 足够简单了,性能也足够好,很多用 DOM 操作很简单的事情,要换个思路硬是分离出数据和视图反而变复杂了。

正好也不用担心客户端渲染引起的其他比如 SEO 的问题。

你的需求用不上 vue 啊~

迁移有歧义啊,另外要 jq 的话可以试试 bacon.js,部分场景有奇效

#2 楼 @mizuhashi 感觉是略有点标题党,感谢你的介绍。

纯属标题党,场景不同就应该选择不同的框架

我是用了很多年的 jQuery 了,最近学习了 Vue.js 后,果断用上。心得是 jQuery 可以解决的问题,80% 以上的情况下,Vue.js 可以解决得更好。jQuery 能不用就不用了。

看场景,没有什么是银弹!

个人认为 vue 的定位很尴尬,高不成低不就。重型场景有 angular,轻重结合场景有 react,微型场景有 riot。vue 没有自己的理念,不明白为啥 vue2.0 出了以后,突然很多技术板块都出现了 vue 的帖子,是一种营销吗?

#7 楼 @ch3rub1m 第一次看到这种说法,什么叫重型场景?什么叫轻重结合?还营销?开发者自己喜欢用什么自己会选择。没事多了解一下 趋势 和他们之间的对比,vue 可以解决 所有 angular 和 react 能解决的事,而且关键是比他们解决的更简单,更漂亮。有什么理由不用 vue???

#5 楼 @gazeldx 求举例子,如何不用 jq 换 vue, 最好能和 rails 一起...

用过 vuejs 了,表示不能接受纯 jquery 了,回不去了

#8 楼 @hxh1246996371 你这种说法太肤浅了,按你的说法 jquery 也能解决 angular 和 react 能解决的事,简单和漂亮每个人的定义不同吧。

#11 楼 @ch3rub1m vue 作为一个没有公司背景的个人项目 star 破三万,绝不会是你说的这么简单。虽然我不懂 vue,但是你所谓的“vue 没有自己的理念”我表示怀疑,希望你进一步阐述为什么说它没有自己的理念。

https://github.com/vuejs/vue

#11 楼 @ch3rub1m Ok 我来给你列举一下场景

  • 阿里的 weex 用 vue
  • gitlab 用 vue
  • laravel 用 vue
  • .....

不知道他们的场景是轻是重,不知道他们为什么不选择 react 或者 angular。我相信他们都不是傻的

另外 自己看看 Gitlab 的这篇文章 why-we-chose-vue

你确定【jquery 也能解决 angular 和 react 能解决的事?】

至于简不简单,就拿 angular1 来说吧,我相信正常人都能一眼看出来 vue 比它简单易懂

说话得拿出证据,当你不了解一个东西的时候 不要妄下结论

我用 vue 想实现的是一个比较常见且简单的场景: index 页面的列表,新增数据,刷新;

我用 vue 的思路:1.create 方法调用后,递归组件增加内容;2. 直接把列表数据用 vue model-view 分离循环,然后 create 后返回列表数据。2 应该是更符合 vue 理念的。

我开这个帖子也是想看看大家的讨论,@nong的观点我很赞赏,我也喜欢这种讨论问题的态度。楼上那些我的需求用不上 vue,什么场景不同的,我也想说的是这样的答案意义不大,有心的话也可以谈谈我这个场景为啥不适合 vue。

我这样的场景,我用 vue 也未尝不可。只是我后来反思自己的这个技术选型,有些盲目追求新技术了。turbolinks + ujs 的理念已经足够领先了,而且非常简单,其实大部分单页应用都是可以这样来实现的。只是 ujs 跟 jQuery 搭配使用更合口。

有很多做 rails 的兄弟一上来就把 turbolinks 禁掉了,又怎么能体会其精妙之处呢。

#7 楼 @ch3rub1m 我分别用 angular.js 和 vue.js 做过纯前端项目,angular 是参与公司的,vue 是一个自己独立完成的。我的感受是,vue 项目的代码量是 angular 实现同样需求的 1/2 以下,加上 vue 入手比较简单,开发速度 3 倍左右。

#13 楼

没必要过度的捧,也没必要过度的泼冷水,时间会证明一切

#17 楼 @i5ting 终于出现明白人,我个人认为过度推广就是一种营销,而 vue 作为一个开源框架,这么做实在让人有些反感,也许不是那么客观。

#13 楼 @hxh1246996371 你举的这些例子,难道我就没了解吗?当你没了解我是否了解的时候,也请不要妄下结论。不要上过 github 就像第一次进城一样。

#12 楼 @sefier vue 的出现就是对 angular 1.x 的模仿,无论是模版还是双向绑定。

ember 有个 cli 可以一键生成项目,vue 就出了个 vue-cli。

react 出了 jsx 之后,vue 也添加了对 jsx 的支持,react 的 vdom 号称性能牛逼,vue2.0 就也实现了 vdom。

react 有 reflux、redux 实现单项数据流,vue 就也实现了个 vuex。

react-native 和 weex 孰先孰后双方各执一词,但是 react-native 无论是立意还是正式发布都早于 weex。

借鉴本无可厚非,然而其它框架基本没有受到过 vue 的反哺。

我说的 vue 没有理念指的就是 vue 总是在借鉴、模仿别人,将别人的思想重新实现一遍。

然后再通过一些技术社交平台来进行推广,就连微信小程序面市,vue2.0 都要借势宣传一波,所以 js 社区才有娱乐圈这种雅称。

当然这只是我个人的喜好问题,我不喜欢 vue,是因为我认为框架最重要的是思想而不是实践。redux 的源码也不过几千行,我相信很多人理解 redux 思想之后,自己实现一个也不是太大的问题,甚至可以比 redux 实现得更优雅。

正如 rails 现在已不如前几年那么"coooool",可是它的思想可谓被无数 web 框架借鉴乃至依然显得伟大。

angular 和 react/flux 也做到了这点,可是 vue 没有。

#13 楼 @hxh1246996371 另外你要我列举我所谓的场景,不妨我就稍微说说我的看法抛砖引玉

首先是 Angular2 引入了 ts,可以用作静态类型检查,更方便地写测试代码。引入了模块化,解决了 react 组件业务切分不明,组件粒度过细导致开发起来常常束手束脚的缺点。有 model 层可以实现前端管道过滤不规则 json,有指令可以实现自治组件,有 service 可以拆分逻辑代码。Angular2 的开发体验更接近后端项目,例如做一个业务极其复杂的企业系统(例如 erp、oa 等),或者是上千个页面的中大型网站,我很难想象用 react 或者 vue 开发如何能够做到多人协作组件复用化还能使项目不杂乱。

目前和 vue 使用人群重叠最大的就是 react,这二者都是细粒度木偶组件 + 自由组合智能组件 + 单向数据流的开发方式,而 react 当初被提出其实只是 fb 想要实现一个前端 view 层的复用,因此数据流动方式其实除了 redux 这类前端 flux 思想实现外,还有如 relay、graphql 以及第三方的 meteor 等后端框架来让开发者自由使用,此时的开发场景就不仅限于 spa 页面了。我说的轻重结合,实际上就是指组件拆分细化的话,无论何种场景都可以根据使用情况打包不同的组件来达到快速开发而打包的 js 文件也不会太大。

至于 weex,一个阿里的 kpi 项目,用脚趾头想也知道只能选个人项目 vue 了吧。

另外 riot 这类新兴的微型框架就是在这方面做到极致,比如你开发一个只有一个页面的 spa,引入一个 riot 就可以使用各种 mvvm 特性,打包的 js 文件还小,这就是我说的微型场景。

而 vue 的定位真的很尴尬,高不成低不就。如果你要强行说 vue 可以开发全部的场景,那也是可以牵强地成立的。不过同时我说 jQuery 也可以做到,你还要否认的话就是双重标准了。我两年前就用 jQuery 实现了一个组件化的 mvvm 框架,虽然那时候刚开始做前端写得不太漂亮。

#19 楼 @ch3rub1m 分析得很透彻仔细 +1,我也不想再争论下去,否则没完没了了,我已摆明观点,咱们暂且放在这,看看将来这三个框架的发展,谁会活下来。

附:就好比选手机,很多人永远只关注配置跑分,根本不知道什么叫用户(开发)体验

用过 vue,但是遇到了问题去 google 是基本没结果的,仅有的不太相关的结果也是中文的,我想这也从侧面说明了一些事。

#20 楼 @hxh1246996371 我说的这几点恰恰都是开发体验

都只是工具而已,好多人看得太过头了

#22 楼 @ch3rub1m 可以转载一下你的这个回复吗?很对我的胃口

#25 楼 @ch3rub1m 死粉太多,快被喷惨了。。。。

#26 楼 @i5ting 你是发到哪里去了…我当年喷郭敬明的时候也被喷惨了

mingyuan0715 Vue / React on Rails without JSON API 提及了此话题。 10月25日 13:41

#28 楼 @i5ting 过去围观了一下,感觉有点可怕,还是 ruby-china 的讨论氛围好点

Vue 会如此受欢迎最重要的原因依我看就是:文档好。

#26 楼 讨论而已,在你眼里就变成了喷,你这不是双重标准?

#31 楼 @nightire 我也是 ember 粉,以前潜水看了很多你的 ember 文章,可惜 ember 真是生不逢时

#5 楼 @gazeldx 不用 angular?

#34 楼 @nightire 说的真好👍🏻 无论什么技术都不能脱离了现实的需求。那个 choice form 看着好牛逼…

#36 楼 @lwd369 眼下也就是看着牛逼一些罢了,我们自己也知道里面存在的不足,最近正在全力制作一些新的功能的新的体验,明年会更好,并且我们全面使用 Ember 了,目前的感受就是很爽,问题当然会有,但是基础框架是很满意的,具体的问题要创造性的具体解决,这是任何框架都会遇到的。

#34 楼 @nightire 不,你误解我的意思了。我说的“生不逢时”的意思是 ember 的理念过于超前,很多 angular2 和 react 的概念其实都是从 ember 那里借鉴的,但是正是过于超前,往往使得用户难以接受。当用户随着时间接受这些理念的时候,流行框架【适时】地推出用户可以接受的东西,这时候虽然 ember 早就有这些理念了,但是用户反而觉得 ember 不够新潮。其实 angular2 也开始出现和 ember 类似的状况了,因为它的理念【领先】了用户的接受程度,所谓的曲高和寡,我想表达的是这个意思。另外求 ember qq 群,我孤军奋战好久了。

@nightire 想请教一下,我近期项目也要做一个编辑器,类似 cform 但编辑内容不同。这样需要大量操作 dom,用 vue,react,ember 合适吗?我想你指导下是怎么实现的。我熟悉 vuejs,但是没学过 ember

#34 楼 @nightire 哎,我们在研究 angular2 深有体会

目前 JS framework 选择性很高很多自由,但也经常碰到各种配置问题 (Webpack 就很多小细节要注意) . 经典 jquery 至少还是个比较简单的工具。

比较 tools and frame 需要首先考虑 workflow, 团队规模,即成本。被撺掇着用新技术而导致的灾难很常见,家丑满满。

  • ReactJS 让 html css js 三者的正交设计犹如白痴,近一步,Facebook 下一个计划是做基于双缓冲技术的浏览器了 (此浏览器用 PHP 代替 JS, dot.php vs node.js)
  • 造 angular2 时间不短,估计花钱不少,越来越像微软的谷歌与微软联合作孽... 微软拉了滩 s, 谷歌动手把 s 抹到了发布会的墙上
  • vue 资金来源是众筹平台,鉴于 building large and ambitious single page applications, 将来会越来越重,坐等内部上演分裂好戏,
  • growth hack: 粉丝越多,撕 b 越快,脑残粉越多,撕 b 越血腥
需要 登录 后方可回复, 如果你还没有账号请 注册新账号