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 相当于自杀了。)
25374 次点击
所在节点    Vue.js
101 条回复
love
2019-06-24 08:27:58 +08:00
@gouflv vue2 好不好我不好评价,毕竟我也没用过,但 3 那个提案我是很欣赏的,因为最近大量写 react hooks,一看就了解这是抄到了 react hooks 的精华并且反弹了让人很不爽的 react hooks 缺点。yyx 很了解竞争框架的优点不惜全盘放弃之前的 API 也要抄过来,这不是技术审美是啥。
starcraft
2019-06-24 08:44:36 +08:00
就是为了更好抄罢了。有什么好跑偏不跑偏的。
gouflv
2019-06-24 08:51:12 +08:00
@love “抄”这个字用的的漂亮。原来你说的技术审美是这样。。
fanling521
2019-06-24 08:56:58 +08:00
2.x 还能写好几年,急啥
gouflv
2019-06-24 09:05:03 +08:00
vue 3 最初的规划是用 oop 解决复用问题,结果一看 hooks 这个发明,立刻觉得 oop 不行了啊,各种问题,搞下去,一不小心还会走上 angular 的老路。那怎么办,硬着头抄呗,还能趁着 hooks 的热度,赶紧吹一波,你看:我们 vue 终于也能复用啦,终于丢掉了狗屎的 mixin 啦,这波抄的多么机智
TimPeake
2019-06-24 09:23:20 +08:00
真香警告就完事儿了
adjusted
2019-06-24 09:23:22 +08:00
react 因为 facebook 那么多工程师在用,如果改动激进点会被自己人先骂惨了,vue 就完全没这个顾虑。
xzh654321
2019-06-24 09:25:21 +08:00
真香警告
rockyou12
2019-06-24 09:29:22 +08:00
@gouflv 抄设计都能喷? node 和 go 的包管理抄都不会抄,不然怎么会这么狗屎。而且现在大部分语言的语法设计也是抄的 c,有问题?
love
2019-06-24 09:29:23 +08:00
@gouflv 出现好的技术因为矜持和面子而不用,是蠢。还好 yyx 不是你这种想法,人家比你灵活务实多了。
loading
2019-06-24 09:34:16 +08:00
不喜欢可以不用追新,实在不行自己 fork,要么就跟着走。
0x000007b
2019-06-24 09:35:22 +08:00
像我这种后端因为没人给我写前端,只能自强不息,我或者说和我差不多的一大群人想要的只是能跑就行,自己做来自己用,等有必要了再找前端重构。改来改去增加了使用难度,都兼容比较好点
moodasmood
2019-06-24 09:50:38 +08:00
jQuery,还能战
zhwithsweet
2019-06-24 09:59:04 +08:00
酸他妈的,不影响 yyx 闷声发大财。
===========
setup 是个可选配置,vue3 要向后兼容的;
vue-class-components 然后继续维护的;
vue3 更多是底层的实现改变,暴露出来的 api 只会少不会多,你之前写啥以后写啥。
BarZu
2019-06-24 09:59:44 +08:00
我很欣赏 Vue3.0 的做法,小部分人反对而已,代表不了大部分。支持的人不发声,反对的人就以为全世界都反对了?

我自己也倒腾过写框架,我甚至把组件设计一个函数,类似这样

import ComponentB from './ComponentB.js'

function ComponentA ({ data, render, dom: _, style }) {
const data1 = data({ ... })

style({
'font-size': '12px'
})

return render([
_('div', [
_('span'),
ComponentB()
])
])
}

只可惜我水平不够,只能自己写个 demo 玩玩
janxin
2019-06-24 10:06:15 +08:00
还好吧,也不算跑偏啊。。。
hoosin
2019-06-24 10:06:53 +08:00
早上看了 JetBrains 的报告 ,React 的占有率已经超越 Vue 了
Qcui
2019-06-24 10:24:35 +08:00
@hoosin React 的占有率一直都比 Vue 高,并且高很多
ericgui
2019-06-24 10:36:56 +08:00
一个软件作品,也算是一部作品吧,也是同样遵守“输入输出”原理的。说白了,Evan 这么多年的技术积累,到底有多少呢?一个 vuejs,火起来了,当然有自己的特色,但一个小小的个人团队,真的就是抵得上 React 和 Angular 两个牛人云集的巨型团队的集思广益吗?

所以 vue3 原创不足,其实本质上还是 Evan 自己的技术积累已经到了极限,我不认为他能够继续引领 Vue3 和另外 2 个框架并驾齐驱,这才是我在考虑放弃 Vue 的核心原因。
liximomo
2019-06-24 10:37:45 +08:00
React Hooks 和 Vue 新的 RFC 解决的是同一问题,让组件逻辑可以再组件外书写复用。Vue 社区发对声大多是一些没有接触到这些复杂应用场景的初中级开发。他们中大多数也是没有完整阅读过 RFC 的,通过二手信息源错误的认为旧的 api 会被替代,实际上新的 RFC 并不会废弃任何东西,你可以不用,但 vue 必须要有,因为别人可能会用到。

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

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

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

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

© 2021 V2EX