Vue 3.0 彻底跑偏了

2019-06-23 21:59:37 +08:00
 plqws
关联文章: https://zhuanlan.zhihu.com/p/68477600

Vue 3.0 的想法是引入灵感来自于 React Hook 的 Function-based API,作为主要的组件声明方式。

意思就是所有组件的初始状态、computed、watch、methods 都要在一个叫做 setup 的方法中定义,抛弃(暂时会继续兼容)原有的基于对象的组件声明方式。

Reddit、HN 相关的讨论帖,包括这个 RFC PR 的本身,都有大量强烈的反对的声音,然而目前 Vue 的核心团队似乎并不认为这个改变可能是一个错误,而是在努力说服大家接受这个改变。

(个人认为如果这个改变实装到 Vue 3.0,也许不会带来太大的影响,但是如果在 Vue 4.0 中彻底废弃原有的组件声明方式,Vue 相当于自杀了。)
26847 次点击
所在节点    Vue.js
101 条回复
love
2019-06-24 19:57:01 +08:00
@plqws 什么叫转 setup 做不了静态分析,转 setup 才是最适合静态分析,也是 hooks 的最大卖点,而且比 class 方式更好地配合 typescript 静态检查,原来的 mixin 之类的才不能静态分析,不好搞清楚变量哪里来的
rockyou12
2019-06-24 20:00:06 +08:00
@FrankHB 好吧,你觉得 c 语法狗屎就狗屎吧,也许你是喜欢 haskell 和 lisp 的大大,和我们这些搬砖的不一样
yuekcc
2019-06-24 20:17:39 +08:00
工作上还真在用 jq1。项目历史原因不解释。vue3.0 的 api 还是挻好看的,入门上估计 vue3 不会增加太多成本,毕竟是内部重构,对外还是可以以 vue2 风格去写。

当然,其实我是比较喜欢 svelte,没有同好么?
FrankHB
2019-06-25 00:58:58 +08:00
@rockyou12 Haskell 显然更狗屎(什么苟屁 layout ……),只是默认已经把能接受这种语法完全没有异议的用户排除出一般人之外了。
Lisp 也有很多(屎),不过某种意义上不管是不是搬砖都有方法更容易(相比 C )把里面的屎变通掉。
Sparetire
2019-06-25 01:03:51 +08:00
现在大版本都不允许有不兼容了么,何况都保证兼容性了还要操心影子都没有的下下个版本会不兼容。。
兼容了又要觉得你这新 API 出来我不会用,不是显得我很过时?
真的难伺候。。
每个说不支持装饰器的,很久以前尤就说了装饰器标准一直不稳定,也给出了合理的理由
还有人说性能不是卖点,性能还真是卖点好吧,至少是卖点之一,体积比 React 小很多,性能略好,新出的 hooks 也做到了开销更小
loading
2019-06-25 06:48:26 +08:00
我才开始学 vuejs 2.x,我跟不上啊……
Chrisssss
2019-06-25 09:11:15 +08:00
还好吧。只是多加了特性,又没有说不支持旧的写法。
Elephant696
2019-06-25 10:33:51 +08:00
@oukichi 关于这个统计,我不认同。我去年也看过一份统计报告。在全球范围来看,react 的使用率确实是远高于 vue 的,特别是在欧美地区。但是在中国还有俄罗斯地区,vue 的使用率要比 react 高很多。如果把使用程度分成 轻度、中度、重度、特别重度四级,那么 react 在欧美为重度,在中国为中度。vue 在全球范围为中度,在中国为特别重度。
上面还有印度和非洲地区的统计,我记不太清楚了,不过基本是 react>vue 的情况。

还有 angular,除了在欧美地区为中度使用外,其他地区基本是轻度,在中国占有率非常低。
Allenqjy
2019-06-25 10:43:43 +08:00
@AlexaZhou 大佬,anyflow 是彻底停更了吗?
leafin
2019-06-25 10:50:27 +08:00
有 jQuery 就够了
coloz
2019-06-25 13:03:16 +08:00
vue 越来越复杂。。。还是学 ng 吧,至少 ng 的难度始终如一
tower1229
2019-06-25 14:53:53 +08:00
只不过你不是 3.0 改造的目标受众,只要你喜欢完全可以一直用 2.x
IWSR
2019-06-25 15:22:31 +08:00
同时维护 2.x 项目与新开发 3.x 项目将会是件很痛苦的事情,不过 Function-based API 会给 vue 带来更多的可能,相比之前的模板来说,写法会更加自由。
IWSR
2019-06-25 15:31:45 +08:00
@IWSR Ummm 当然我还是推荐新项目使用 react 吧,老年人吃不消了
cheerxl
2019-06-26 09:18:49 +08:00
@IWSR template 并不会取消
jinsongzhao
2019-09-06 23:20:41 +08:00
个人决定的作品,比集体决定的作品,容易跑偏。
Sapp
2019-11-29 18:08:40 +08:00
就没人发现,如果 vue 没有 3.0,其实已经跟有 hooks 加成的 react 完全不是一个级别的对手了么? 包括在 vue 好上手这一点,有 hooks 加成的 react 已经比 vue 强了(当然 react 的其他东西 react-router、redux 依旧比 vue 那一套复杂),利用 hooks,很多新手可以实现以前很多基本做不到的事情,react 拥有 hooks 之后,vue 已经完全对我没有任何吸引力了,以前我还会在一些小项目考虑他,现在直接 react 就完事了。
xinn1x
2020-05-18 16:45:03 +08:00
不觉得,一个功能分散在不同的声明周期里,很难受么。一个组件的声明周期里一堆功能相关的函数罗列在那,过几天再看就很难受。
bojue
2020-05-21 13:45:58 +08:00
@gouflv angular 好无辜
nexo
2021-04-21 12:44:25 +08:00
@love 大佬求教下 vue2.x 不用 class 的写法 能接入 ts 吗

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

https://ex.noerr.eu.org/t/576714

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

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

© 2021 V2EX