V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

有没有前端带佬讲一下 Vue3 现在值不值得迁移, ts 支持相关的轮子完善了吗?

  •  
  •   LeeReamond · 53 天前 · 2570 次点击
    这是一个创建于 53 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前折腾过 vue2 的 ts,感觉不太行。最近看了一下 vue3 介绍,说是支持监听深层对象的改动,还有支持 ts 啥的,略心动。目前 vue2 需要使用 router/vuex/axios 这些基础组件,进阶的需要服务端渲染 /组件库之类的支持,请问 vue3 在这些方面目前能无痛迁移了吗?

    把现有 vue2 项目迁移到 3 需要多少功夫?

    47 条回复    2021-06-15 09:30:10 +08:00
    emeab
        1
    emeab   53 天前
    自己的项目可以搞. 公司就算了.
    TomVista
        2
    TomVista   53 天前
    不能,需要手动改一些不兼容的语法和骚操作。工作量主要看你 不兼容的语法和骚操作 用的多不多,

    然后 vue3 全家桶仍然和 ts 不搭
    PinkRabbit
        3
    PinkRabbit   53 天前
    没法无痛,如果项目挺大迁移起来还挺麻烦的,如果你里面有用一些组件库之类的基本没兼容
    lqfxz520
        4
    lqfxz520   53 天前
    @TomVista >> 然后 vue3 全家桶仍然和 ts 不搭
    为什么不搭啊
    timedivision
        5
    timedivision   53 天前
    不完善的直接 any 完事
    belin520
        6
    belin520   53 天前
    迁移不推荐,也没有必要
    新开项目已经 OK 了,生态组件慢慢在跟上
    VDimos
        7
    VDimos   53 天前 via Android
    写到最后成了 anyscript
    releaseme
        8
    releaseme   53 天前
    非要迁移的话整个微前端慢慢套吧
    LeeReamond
        9
    LeeReamond   53 天前
    @belin520 慢慢跟上意思是现在还不行?
    66beta
        10
    66beta   53 天前
    vue 强大之处就是自己维护了一套生态,不用烦恼选什么 router 之类的问题

    公司项目就没必要了,不如直接换 react
    anguiao
        11
    anguiao   53 天前 via Android
    没有必要迁移啊,后面还有 2.7,到时候迁移到 2.7 就行了。
    2.x 的项目还是留在 2.x 吧,比较稳妥。
    bojackhorseman
        12
    bojackhorseman   53 天前 via iPhone   ❤️ 2
    公司的项目被我引入了 composition-api,上上上周心血来潮周末尝试迁移了一下,累吐血了,一堆坑。要改的地方太多了,我已经放弃了🙃
    IvanLi127
        13
    IvanLi127   53 天前 via Android
    不值得吧,觉得 vue3 不够好,如果你不满意 vue2,可以考虑 react
    belin520
        14
    belin520   53 天前
    @LeeReamond #9 基本够用,但是生态跟 vue2 还是差很多的
    vinsony
        15
    vinsony   53 天前
    我试了一下,吐了。大项目要迁移的话改动非常多,Element 现在也不少 bug,再改 ts 的话更困难,费力不讨好。等 2.7 或是 3.1 再看吧
    TomVista
        16
    TomVista   53 天前 via Android
    @lqfxz520 比如 vuex +ts,写起来超级恶心,vuerouter 就没 ts,然后新的 proxy+setup 能写吐
    avastms
        17
    avastms   53 天前 via Android
    vue 和 ts 不兼容,见一次说一次
    lupkcd
        18
    lupkcd   53 天前   ❤️ 1
    新项目可以上 迁移不建议
    LS 一大堆说 ts 不兼容的 不知道他们怎么用的
    mxT52CRuqR6o5
        19
    mxT52CRuqR6o5   53 天前 via Android
    新项目你要是想用,把问题都想明白了,可以上 vue3,老的 vue2 项目就保持着 vue2
    matrix67
        20
    matrix67   53 天前
    perl5 perl6
    python2 python3
    vue2 vue3
    wunonglin
        21
    wunonglin   53 天前
    vue 和 ts 搭配太恶心了 2 、3 都是
    walpurgis
        22
    walpurgis   53 天前 via Android
    公司项目配置了下,可以混用,感觉还行,ts 本身也是有渐进式理念的,跟 vue 一样,按需逐步替换,一些复杂业务逻辑非常适合用 ts,不然数据对象多嵌套几层就晕了,组件展示层用老写法也完全没问题
    chouchoui
        23
    chouchoui   52 天前 via iPhone
    composition api + ts 毫无问题
    murmur
        24
    murmur   52 天前   ❤️ 1
    vue3 其实没啥太亮眼的特性,主要是 vue2 做的太好了,没啥痛点
    ALVC666
        25
    ALVC666   52 天前
    新项目 vue3 + tsx 真的体验很爽 类型推导和智能提示都有了 嗖嗖的
    旧项目的很难 自己的还好 如果使用的第三方库没有支持
    那就蛋疼了
    DOLLOR
        26
    DOLLOR   52 天前
    组合式 API+响应式对象,写起来像 React 的 hook 。
    缺点仍然是模板代码里的提示仍然不够智能。
    acthtml
        27
    acthtml   52 天前
    公司的项目不建议升,生态还没准备好。
    vuex 对 ts 的支持很变扭,vue3 dev tools 还没有支持 vuex 的插件。
    uen
        28
    uen   52 天前
    1. 不建议迁移
    2. vue3+ts 体验还是待提升; vue3+tsx 会好很多
    joe237
        29
    joe237   52 天前
    直接迁移不建议。但是在 vue2 里用 composition api 还是很舒服的,特别是一些体态臃肿的组件,逻辑拆分开来相对全怼在 Options 中舒服太多了
    mumaniu
        30
    mumaniu   52 天前
    不迁移。vue2 挺好的。新项目不面对 C 端,可以直接上 vue3.
    mongodb
        31
    mongodb   52 天前
    不行。

    Vue3 自己没问题。

    周边生态没跟上。
    abersheeran
        32
    abersheeran   52 天前
    确实。Vue3 相对于 Vue2 来说,我觉得是败笔。升级没解决什么痛点问题,反而乱抄函数式设计搞得自己四不像。我一直觉得 Vue2 的 OOP 设计挺好,现在不发展自己的优势实在不知道 youyuxi 咋想的。以前我都是 Vue 和 React 想起来哪个用哪个,现在我基本只用 React 了。

    另外,Vue3 的 AnyScript 早就不是新闻了吧?
    abersheeran
        33
    abersheeran   52 天前
    https://github.com/sveltejs/svelte 另外前段时间被大佬安利了这个,如果是自己的项目,可以试试看。
    hedwi
        34
    hedwi   52 天前
    建议换 angular
    love
        35
    love   52 天前
    @abersheeran svelte 这种动用编译器的也太重了,万一人家放弃项目了比别的框架都要惨几倍,感觉对于打算做长远的项目不利
    Terry05
        36
    Terry05   52 天前
    composition api 对于写组件、模块、业务抽象等内容相比 vue2 强也不是一点,如果平时只是做业务功能、增删改查,自然感觉 vue3 相对 vue2 并没有什么提升,反而增加了很多学习成本
    ZhiyuanLin
        37
    ZhiyuanLin   52 天前
    喜欢 TypeScript 还是 Angular 最爽,用 Angular 你想不用 TypeScript 都不行了。
    leelz
        38
    leelz   52 天前
    vue3 全家桶已经在生产环境用上了。
    1 、ts 兼容不是很好
    2 、vuex 没法使用 vue2 的 mapGetter 、mapAction
    3 、dev-tool 不能使
    John60676
        39
    John60676   52 天前
    composition api 不香吗

    https://github.com/AttoJS/vue-request
    yunyuyuan
        40
    yunyuyuan   52 天前
    应该很难
    belin520
        41
    belin520   52 天前
    @leelz #38 2 一直可以吧,3 已经可以了,升级下 vuex
    sjhhjx0122
        42
    sjhhjx0122   52 天前
    vuex 支持 ts 一直都烂,上次看到一个 pinia,感觉不错下次准备用用
    Jaosn
        43
    Jaosn   51 天前
    我司新项目全部 Vue3
    abersheeran
        44
    abersheeran   49 天前
    @love 你这话说的,只要用的人多这项目哪里会被放弃?如果按照这个思维方式来考虑,那么 Linux 可能就不会出现在世界上了——用别人的操作系统太重了,万一 Linus 不维护了换系统怎么办?

    或者换个更符合中国中层领导的说法——用别国的操作系统太不靠谱了,万一别人卡我们脖子怎么办?
    abersheeran
        45
    abersheeran   49 天前
    @love 开源是一种共产主义运动,你不能拿旧的私有制思维来考虑这件事。

    什么是旧的私有制思维?“人家放弃项目了”。他确实是创造者,却没有所有权,以 MIT 协议放出来的开源代码属于全世界。

    “所有人都放弃这个项目了”这才是需要考虑的风险。而我觉得,这项目至少比大部分公司的网站要活的久,没必要杞人忧天。如果真的担忧,可以打钱、贡献代码等方式支持。

    当然,你也可以选择不用,这是你的权利。回复这些只是交流一下思想。
    love
        46
    love   48 天前
    @abersheeran web 项目远到不了 linux 这种几乎不太可能被放弃的程度,特别是 js 界,荒废的 js 项目多了去了,连 jquery 和 backbone 以前这么流行的都不行了,js 的技术演化很快,而这类靠编译器来魔改 JS 语法的恰恰是危险的方向,且不象 backbone 这类只是纯 JS 管理者不维护了也能用,编译器这种和工具绑定的不维护了非常难受,连带一堆东西可能没法升级了如 babel 等。

    另外别觉得公司的项目活不久,公司老项目多了去了,我自己的几个项目都有十年了,技术选择也要考虑点未来方向风险。

    当然了自己玩玩的项目随便怎样都行。
    Colorful
        47
    Colorful   48 天前
    自己的项目,随便你玩,公司的项目别动。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   967 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:51 · PVG 05:51 · LAX 14:51 · JFK 17:51
    ♥ Do have faith in what you're doing.