以前折腾过 vue2 的 ts,感觉不太行。最近看了一下 vue3 介绍,说是支持监听深层对象的改动,还有支持 ts 啥的,略心动。目前 vue2 需要使用 router/vuex/axios 这些基础组件,进阶的需要服务端渲染 /组件库之类的支持,请问 vue3 在这些方面目前能无痛迁移了吗?
把现有 vue2 项目迁移到 3 需要多少功夫?
1
2kCS5c0b0ITXE5k2 2021-06-10 16:47:54 +08:00
自己的项目可以搞. 公司就算了.
|
2
TomVista 2021-06-10 16:53:13 +08:00
不能,需要手动改一些不兼容的语法和骚操作。工作量主要看你 不兼容的语法和骚操作 用的多不多,
然后 vue3 全家桶仍然和 ts 不搭 |
3
PinkRabbit 2021-06-10 16:54:48 +08:00
没法无痛,如果项目挺大迁移起来还挺麻烦的,如果你里面有用一些组件库之类的基本没兼容
|
5
timedivision 2021-06-10 18:12:08 +08:00
不完善的直接 any 完事
|
6
belin520 2021-06-10 18:20:12 +08:00
迁移不推荐,也没有必要
新开项目已经 OK 了,生态组件慢慢在跟上 |
7
VDimos 2021-06-10 18:37:43 +08:00 via Android
写到最后成了 anyscript
|
8
releaseme 2021-06-10 19:58:03 +08:00
非要迁移的话整个微前端慢慢套吧
|
9
LeeReamond OP @belin520 慢慢跟上意思是现在还不行?
|
10
66beta 2021-06-10 20:14:41 +08:00
vue 强大之处就是自己维护了一套生态,不用烦恼选什么 router 之类的问题
公司项目就没必要了,不如直接换 react |
11
anguiao 2021-06-10 20:17:41 +08:00 via Android
没有必要迁移啊,后面还有 2.7,到时候迁移到 2.7 就行了。
2.x 的项目还是留在 2.x 吧,比较稳妥。 |
12
bojackhorseman 2021-06-10 20:21:55 +08:00 via iPhone 2
公司的项目被我引入了 composition-api,上上上周心血来潮周末尝试迁移了一下,累吐血了,一堆坑。要改的地方太多了,我已经放弃了🙃
|
13
IvanLi127 2021-06-10 20:24:58 +08:00 via Android
不值得吧,觉得 vue3 不够好,如果你不满意 vue2,可以考虑 react
|
14
belin520 2021-06-10 20:54:56 +08:00
@LeeReamond #9 基本够用,但是生态跟 vue2 还是差很多的
|
15
vinsony 2021-06-10 21:05:16 +08:00
我试了一下,吐了。大项目要迁移的话改动非常多,Element 现在也不少 bug,再改 ts 的话更困难,费力不讨好。等 2.7 或是 3.1 再看吧
|
16
TomVista 2021-06-10 21:11:07 +08:00 via Android
@lqfxz520 比如 vuex +ts,写起来超级恶心,vuerouter 就没 ts,然后新的 proxy+setup 能写吐
|
17
EPr2hh6LADQWqRVH 2021-06-10 22:00:03 +08:00 via Android
vue 和 ts 不兼容,见一次说一次
|
18
lupkcd 2021-06-10 22:49:05 +08:00 1
新项目可以上 迁移不建议
LS 一大堆说 ts 不兼容的 不知道他们怎么用的 |
19
mxT52CRuqR6o5 2021-06-10 22:49:10 +08:00 via Android
新项目你要是想用,把问题都想明白了,可以上 vue3,老的 vue2 项目就保持着 vue2
|
20
matrix67 2021-06-10 22:53:29 +08:00
perl5 perl6
python2 python3 vue2 vue3 |
21
wunonglin 2021-06-10 23:53:48 +08:00
vue 和 ts 搭配太恶心了 2 、3 都是
|
22
walpurgis 2021-06-11 02:25:28 +08:00 via Android
公司项目配置了下,可以混用,感觉还行,ts 本身也是有渐进式理念的,跟 vue 一样,按需逐步替换,一些复杂业务逻辑非常适合用 ts,不然数据对象多嵌套几层就晕了,组件展示层用老写法也完全没问题
|
23
chouchoui 2021-06-11 08:00:24 +08:00 via iPhone
composition api + ts 毫无问题
|
24
murmur 2021-06-11 08:10:13 +08:00 1
vue3 其实没啥太亮眼的特性,主要是 vue2 做的太好了,没啥痛点
|
25
ALVC666 2021-06-11 09:00:37 +08:00
新项目 vue3 + tsx 真的体验很爽 类型推导和智能提示都有了 嗖嗖的
旧项目的很难 自己的还好 如果使用的第三方库没有支持 那就蛋疼了 |
26
DOLLOR 2021-06-11 09:25:51 +08:00
组合式 API+响应式对象,写起来像 React 的 hook 。
缺点仍然是模板代码里的提示仍然不够智能。 |
27
acthtml 2021-06-11 09:46:04 +08:00
公司的项目不建议升,生态还没准备好。
vuex 对 ts 的支持很变扭,vue3 dev tools 还没有支持 vuex 的插件。 |
28
uen 2021-06-11 10:18:32 +08:00
1. 不建议迁移
2. vue3+ts 体验还是待提升; vue3+tsx 会好很多 |
29
joe237 2021-06-11 10:40:35 +08:00
直接迁移不建议。但是在 vue2 里用 composition api 还是很舒服的,特别是一些体态臃肿的组件,逻辑拆分开来相对全怼在 Options 中舒服太多了
|
30
mumaniu 2021-06-11 10:43:12 +08:00
不迁移。vue2 挺好的。新项目不面对 C 端,可以直接上 vue3.
|
31
mongodb 2021-06-11 11:16:38 +08:00
不行。
Vue3 自己没问题。 周边生态没跟上。 |
32
abersheeran 2021-06-11 11:31:18 +08:00
确实。Vue3 相对于 Vue2 来说,我觉得是败笔。升级没解决什么痛点问题,反而乱抄函数式设计搞得自己四不像。我一直觉得 Vue2 的 OOP 设计挺好,现在不发展自己的优势实在不知道 youyuxi 咋想的。以前我都是 Vue 和 React 想起来哪个用哪个,现在我基本只用 React 了。
另外,Vue3 的 AnyScript 早就不是新闻了吧? |
33
abersheeran 2021-06-11 11:35:23 +08:00
https://github.com/sveltejs/svelte 另外前段时间被大佬安利了这个,如果是自己的项目,可以试试看。
|
34
hedwi 2021-06-11 11:48:49 +08:00
建议换 angular
|
35
love 2021-06-11 11:52:55 +08:00
@abersheeran svelte 这种动用编译器的也太重了,万一人家放弃项目了比别的框架都要惨几倍,感觉对于打算做长远的项目不利
|
36
Terry05 2021-06-11 12:24:41 +08:00
composition api 对于写组件、模块、业务抽象等内容相比 vue2 强也不是一点,如果平时只是做业务功能、增删改查,自然感觉 vue3 相对 vue2 并没有什么提升,反而增加了很多学习成本
|
37
ZhiyuanLin 2021-06-11 13:43:57 +08:00
喜欢 TypeScript 还是 Angular 最爽,用 Angular 你想不用 TypeScript 都不行了。
|
38
leelz 2021-06-11 13:45:53 +08:00
vue3 全家桶已经在生产环境用上了。
1 、ts 兼容不是很好 2 、vuex 没法使用 vue2 的 mapGetter 、mapAction 3 、dev-tool 不能使 |
39
John60676 2021-06-11 14:23:48 +08:00
|
40
yunyuyuan 2021-06-11 15:07:54 +08:00
应该很难
|
42
sjhhjx0122 2021-06-11 16:53:53 +08:00
vuex 支持 ts 一直都烂,上次看到一个 pinia,感觉不错下次准备用用
|
43
Jaosn 2021-06-12 11:06:49 +08:00
我司新项目全部 Vue3
|
44
abersheeran 2021-06-14 22:37:04 +08:00
@love 你这话说的,只要用的人多这项目哪里会被放弃?如果按照这个思维方式来考虑,那么 Linux 可能就不会出现在世界上了——用别人的操作系统太重了,万一 Linus 不维护了换系统怎么办?
或者换个更符合中国中层领导的说法——用别国的操作系统太不靠谱了,万一别人卡我们脖子怎么办? |
45
abersheeran 2021-06-14 22:43:40 +08:00
@love 开源是一种共产主义运动,你不能拿旧的私有制思维来考虑这件事。
什么是旧的私有制思维?“人家放弃项目了”。他确实是创造者,却没有所有权,以 MIT 协议放出来的开源代码属于全世界。 “所有人都放弃这个项目了”这才是需要考虑的风险。而我觉得,这项目至少比大部分公司的网站要活的久,没必要杞人忧天。如果真的担忧,可以打钱、贡献代码等方式支持。 当然,你也可以选择不用,这是你的权利。回复这些只是交流一下思想。 |
46
love 2021-06-15 08:55:01 +08:00
@abersheeran web 项目远到不了 linux 这种几乎不太可能被放弃的程度,特别是 js 界,荒废的 js 项目多了去了,连 jquery 和 backbone 以前这么流行的都不行了,js 的技术演化很快,而这类靠编译器来魔改 JS 语法的恰恰是危险的方向,且不象 backbone 这类只是纯 JS 管理者不维护了也能用,编译器这种和工具绑定的不维护了非常难受,连带一堆东西可能没法升级了如 babel 等。
另外别觉得公司的项目活不久,公司老项目多了去了,我自己的几个项目都有十年了,技术选择也要考虑点未来方向风险。 当然了自己玩玩的项目随便怎样都行。 |
47
Colorful 2021-06-15 09:30:10 +08:00
自己的项目,随便你玩,公司的项目别动。
|