前端的同学,现在小程序用啥框架好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Yokin
V2EX    程序员

前端的同学,现在小程序用啥框架好?

  •  
  •   Yokin 2021 年 3 月 22 日 15446 次点击
    这是一个创建于 1803 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司远古时期的小程序要重写,之前是原生语法写的 现在小程序用啥框架好写小程序?Vue 技术栈 有前端的同学指点一下吗?

    第 1 条附言    2021 年 3 月 22 日
    谢谢大家,
    我们公司最终决定用原生。我们是小项目但是人少不希望有太多坑浪费时间。
    第 2 条附言    2021 年 3 月 22 日
    目前只做微信小程序,没有跨端需求,再次谢谢
    98 条回复    2021-04-26 23:36:19 +08:00
    MonkeyD1
        1
    MonkeyD1  
       2021 年 3 月 22 日   4
    uni-app, taro
    whypool
        2
    whypool  
       2021 年 3 月 22 日 via Android
    目前用的是 mpvue,虽然停更了,但是并不影响使用,会 vue 可以直接上手
    auchan
        3
    auchan  
       2021 年 3 月 22 日
    我们公司除了原生的就是 uniapp 了 感觉还行
    sugars
        4
    sugars  
    PRO
       2021 年 3 月 22 日   4
    我写来写去还是觉得原生的好啊
    middle2021
        5
    middle2021  
       2021 年 3 月 22 日 via Android
    Taro
    stillyu
        6
    stillyu  
       2021 年 3 月 22 日
    remax
    Yokin
        7
    Yokin  
    OP
       2021 年 3 月 22 日
    @whypool mpvue 听说坑特别多啊。会影响开发的不?
    guorui112
        8
    guorui112  
       2021 年 3 月 22 日
    原生好啊,为啥要用框架,框架编译出来的包感觉要比原生的包体积大啊,超 2m 还要考虑分包,多费劲
    Yokin
        9
    Yokin  
    OP
       2021 年 3 月 22 日
    @MonkeyD1 taro 是 react 技术栈的,至于 uni-app 坑会不会特别多,我们目前只做微信小程序
    Yokin
        10
    Yokin  
    OP
       2021 年 3 月 22 日
    @guorui112 uni-app 的性能貌似比原生好吧 轮子又多 开发效率比原生快
    Yokin
        11
    Yokin  
    OP
       2021 年 3 月 22 日
    @auchan 对于 uniapp 的插件市场如果使用几个不同的插件会产生问题不?这方面的坑我 19 年就有过但当时没解决,现在还有这个问题吗
    whypool
        12
    whypool  
       2021 年 3 月 22 日 via Android
    @Yokin 目前感觉没啥坑的,几个小程序项目都在用,其实主要是这个编译后非常小,毕竟有 2m 限制,微信自己出的 kbone 编译后都快 700kb 了,对比 mpvue60 多 kb
    encro
        13
    encro  
       2021 年 3 月 22 日
    @Yokin
    这种问题肯定会存在。。。插件作者无法考虑其他插件的兼容性吧。
    loliyu
        14
    loliyu  
       2021 年 3 月 22 日
    Taro
    PinkRabbit
        15
    PinkRabbit  
       2021 年 3 月 22 日
    没有跨端需求就原生呗,跨端就 uni 和 taro
    CoCoMcRee
        16
    CoCoMcRee  
       2021 年 3 月 22 日
    Uni-app 吧, vue 直接上手.
    BarZu
        17
    BarZu  
       2021 年 3 月 22 日
    原生挺香的,不用愁框架的坑,而且体积小,我开发了 34 个模块,才 600 多 K
    whyso
        18
    whyso  
       2021 年 3 月 22 日
    @Yokin uni-app 性能比原生的好?
    yahon
        19
    yahon  
       2021 年 3 月 22 日
    原生的靠谱 第三方的不知道啥时候会遇到一个坑 然后浪费时间去填 特别是用第三方的 UI 库的时候
    52chinaweb
        20
    52chinaweb  
       2021 年 3 月 22 日
    多平台小程序用 uni-app
    Yokin
        21
    Yokin  
    OP
       2021 年 3 月 22 日
    sevenzhou1218
        22
    sevenzhou1218  
       2021 年 3 月 22 日
    到最后你还是会觉得原生的香
    tangtanghong
        23
    tangtanghong  
       2021 年 3 月 22 日
    原生大法好啊
    ccsulzf0627
        24
    ccsulzf0627  
       2021 年 3 月 22 日
    目前 remax,react 可以直接上手,还没看到什么大坑
    lewurui
        25
    lewurui  
       2021 年 3 月 22 日
    uniapp,vue 一把梭它不香吗
    anson2017
        26
    anson2017  
       2021 年 3 月 22 日
    原生挺香的
    LiuJiang
        27
    LiuJiang  
       2021 年 3 月 22 日
    建议用原生
    Desiree
        28
    Desiree  
       2021 年 3 月 22 日
    原生吧,不用兼容太多东西,而且原生也有很多组件可以用的
    ly020044
        29
    ly020044  
       2021 年 3 月 22 日
    原生+1
    anUglyDog
        30
    anUglyDog  
       2021 年 3 月 22 日
    不是怎么爽怎么来,而是看有没有多小程序平台一起发布的需求。一个月前我纠结原生还是 uni-app 的时候选了原生。。
    proger
        31
    proger  
       2021 年 3 月 22 日
    vue 用 uni-app
    react 用 taro
    ByteRan
        32
    ByteRan  
       2021 年 3 月 22 日
    Uni-app,已经开发了 6 个项目了。目前没有发现有任何问题
    varzy
        33
    varzy  
       2021 年 3 月 22 日 via iPhone
    还是用原生的吧,加一些自己需要的配置和插件
    TimeRain
        34
    TimeRain  
       2021 年 3 月 22 日
    建议原生
    chenmobuys
        35
    chenmobuys  
       2021 年 3 月 22 日
    不是跨平台,还是原生的好
    grewer
        36
    grewer  
       2021 年 3 月 22 日
    remax 没用过
    taro 用过 做是没问题, 但是坑也挺多的
    qq1340691923
        37
    qq1340691923  
       2021 年 3 月 22 日
    Uni-app 吧,毕竟跨平台
    C603H6r18Q1mSP9N
        38
    C603H6r18Q1mSP9N  
       2021 年 3 月 22 日
    uniapp 可以线上用
    abcdGJJ
        39
    abcdGJJ  
       2021 年 3 月 22 日 via Android
    不多端复用就原生
    oldhorse
        40
    oldhorse  
       2021 年 3 月 22 日
    uni-app 还阔以。就是感觉那个 picker 好难用,然后插件市场各种插件,有时候也是略麻烦
    unco020511
        41
    unco020511  
       2021 年 3 月 22 日
    小程序还需要框架吗?
    wxsm
        42
    wxsm  
       2021 年 3 月 22 日
    小程序其实不存在所谓「原生」的概念。楼上所谓的「原生」与 uniapp taro 等开发框架的区别,从本质上来说更接近于 js 与 typescript 的区别。使用「原生」好处不见得有多少,但是问题却不少,比如学习成本,比如微信小程序至今不支持直接使用 npm (需要多一步「构建 npm 」操作),等等等等。所以我很难理解楼上那些推荐「原生」的人。
    peoren
        43
    peoren  
       2021 年 3 月 22 日
    uniapp 吧,好上手
    byteX
        44
    byteX  
       2021 年 3 月 22 日
    原生
    ch2
        45
    ch2  
       2021 年 3 月 22 日
    推荐 react+taro+weui,这三个组合就够了
    gdrk
        46
    gdrk  
       2021 年 3 月 22 日
    万一哪天领导让你把小程序移植到头条 /qq 等平台上时。。。 所以还是 uni 吧,效率第一
    kimiler
        47
    kimiler  
       2021 年 3 月 22 日
    @Yokin taro 也支持 vue 语法
    baozi23
        48
    baozi23  
       2021 年 3 月 22 日
    uniapp
    Felldeadbird
        49
    Felldeadbird  
       2021 年 3 月 22 日
    我用有赞的 vant-weapp 。坑挺多,主要需要解决 一些类似跨域,传递数据的问题。 其余大多数用官方的。。嗯。。。
    sugars
        50
    sugars  
    PRO
       2021 年 3 月 22 日
    @wxsm 不知道你在说什么
    xiaofenyi
        51
    xiaofenyi  
       2021 年 3 月 22 日
    我现在做是用原生的,因为框架必须再学框架的知识,配置也不是很会。
    runze
        52
    runze  
       2021 年 3 月 22 日
    @wxsm 小程序本身就有很多坑+文档不完善+经常 XJB 改,各种小程序框架也都有不少坑而且资料特别少。
    加一起就是更多的坑,遇到问题首先不是解决问题,而需要先找出是框架还是小程序的问题,往往找不到相关资料。

    这与 JS/TS 关系不一样:
    JS 虽然有不少坑,但是大家都比较熟悉,而且文档、资料特别丰富,也很少乱改,有着顶尖的兼容性。
    TS 的用户也很多,编译产物简单易读,只增加了一些类型,可以避免而不是像小程序框架那样产生问题。
    y4ZIZrCL74b9MYl6
        53
    y4ZIZrCL74b9MYl6  
       2021 年 3 月 22 日
    @wxsm
    为什么小程序没有原生的概念,原生在这里是约定俗成的一个词组,大概就是不使用框架,使用官方语法。大家理解这个事就可以了。
    引用「从本质上来说更接近于 js 与 typescript 的区别,使用「原生」好处不见得有多少,但是问题却不少。
    所以你认为的本质是什么,为什么更接近于 js 与 typescript 的情况下,使用好处不见得有多少,但是问题却不少。你这么总结就是在说 js 啊,js 是一门客户端语言,ts 是更严格的 js 。可以编译成 js 。仅此而已,更适合不同的使用场景罢了。你说很难理解使用原生开发小程序,我就想原生小程序怎么你了,不使用工具这个事在你认为那么难理解吗?
    LionMusician
        54
    LionMusician  
       2021 年 3 月 22 日
    一直在做各种小程序,框架也用了不少。
    18 年开始用 mpvue,优点是 vue 技术栈基本无障碍上手,缺点是美团不维护了,跨平台支持基本为 0 。
    uniapp 也搭过两个小程序,优点是 vue 上手简单,UI 库丰富,缺点是 Hbuilder 很难用。
    开发支付宝小程序和云闪付小程序都是用的 taro,react 语法,优点是跨平台很友好,可以同时运行到多个端进行对比,缺点是 react 语法对题主上手有些费时间,同时 UI 库比较少。
    y4ZIZrCL74b9MYl6
        55
    y4ZIZrCL74b9MYl6  
       2021 年 3 月 22 日
    @wxsm
    别再总结你对 JS 和 TS 那狭隘的偏见了
    LionMusician
        56
    LionMusician  
       2021 年 3 月 22 日
    @LionMusician 补充一下,taro 我用的是 2.x 版本,现在 3.x 也支持 vue 语法了,但学习成本比其他两个要高。
    nbhaohao
        57
    nbhaohao  
       2021 年 3 月 22 日
    1. 如果是长期维护的项目,没有跨端需求,还是建议原生比较靠谱一些,比如官方出一些新特性,用起来坑会少一些。
    2. 如果是小型项目或者跨端需求,taro 和 uni-app 本质差不多的,都是充当了把 react/vue 代码翻译成原生代码。所以推荐 remax,remax 的思路和这两个框架完全不一样,看上去是一条正确的道路。taro 用的人也蛮多的,如果 uni-app 和 taro 选一个的话,推荐 taro
    a1528026364
        58
    a1528026364  
       2021 年 3 月 22 日
    @Felldeadbird uniapp 上的 ui 框架,推荐用 uView,这个框架组件全平台兼容性好,vant 特别蠢 H5 跟小程序不兼容
    ALVC666
        59
    ALVC666  
       2021 年 3 月 22 日
    需要跨端 taro
    不需要原生
    linkopeneyes
        60
    linkopeneyes  
       2021 年 3 月 22 日
    @nbhaohao 现在 taro 和 remax 实现思路差不多了,但是 taro 稍卡也没研究是为什么
    nbhaohao
        61
    nbhaohao  
       2021 年 3 月 22 日
    @sjhhjx0122 哦哦,谢谢告知,那我之后会更优先考虑 taro 了,因为 remax 毕竟还是较新一些,taro 更新得更加频繁。也是因为我个人比较喜欢 react
    karnaugh
        62
    karnaugh  
       2021 年 3 月 22 日   1
    没人推荐一下 Tina ?
    这个框架就相当于原生小程序,然后把原生小程序一个页面要写 4 个文件,整合成了像 vue 一样的一个文件,其他的话基本是原生写法
    HeyXiao
        63
    HeyXiao  
       2021 年 3 月 22 日
    日经贴。。。作为一个前端我已经看到这种帖子好几次了
    linkopeneyes
        64
    linkopeneyes  
       2021 年 3 月 22 日
    @nbhaohao 其实我觉得 remax 蛮好用的就是没什么社区,taro 想升级还得升级脚手架其实也挺烦的
    66beta
        65
    66beta  
       2021 年 3 月 22 日
    看你的问题描述,原生
    Yokin
        66
    Yokin  
    OP
       2021 年 3 月 22 日
    @tanranran 我真正经历过之前的老板为了节省前期成本找外包用 DCloud 做了一个一带三的 app,其中的 android 卡的没办法用,我接手之后不得已重新写了,就因为里面自动生成的代码完全无法使用,一半原生一半 webview,满满的吃屎的感觉。 出自知乎 https://www.zhihu.com/question/402489534/answer/1293438331

    这是真的吗
    chaucerling
        67
    chaucerling  
       2021 年 3 月 22 日   2
    我是用 mpx 做跨平台小程序开发的,优点是编译出来的就是原生的代码,没有 uniapp 和 taro 运行时的兼容问题,性能也更好
    遇到的坑主要都是原生平台的问题,比较好定位和解决
    KeShandian
        68
    KeShandian  
       2021 年 3 月 22 日
    推荐原生,可以自己用 webpack 加多一层打包处理,在小程序实现一些扩展功能,后期扩展也更方便。
    xutao881
        69
    xutao881  
       2021 年 3 月 22 日
    用 taro 写了小程序,写完之后觉得还不如写原生
    wxsm
        70
    wxsm  
       2021 年 3 月 22 日
    @overflow99
    @runze
    我将它类比为 js/ts,是因为 ts 编译以后得到了 js,实际的 runtime 也是 js 。小程序与框架的关系与此类似,uniapp 等框架编译以后得到了「原生」代码,仅此而已。因此它们这些框架虽然可能也存在自己的坑,但这种坑一般不难解决,因为这里不涉及到真正意义上的原生代码转换。从本质上来说,大家都是原生,这是我的看法。

    反例比如 ReactNative 这种 hybird app,这种框架与原生之间存在巨大的鸿沟,一旦出现了坑估计不懂原生的人是毫无头绪。
    wuhaoworld
        71
    wuhaoworld  
       2021 年 3 月 22 日
    还是推荐原生
    wxsm
        72
    wxsm  
       2021 年 3 月 22 日   1
    @overflow99 我不知道你为什么戾气这么重,一言不合就要开始人身攻击。我没有说用「原生」的人都有毛病,也没有阻止你们使用,我自己也用「原生」写了不少小程序。我只是提出了我自己的看法。
    jingcoco
        73
    jingcoco  
       2021 年 3 月 22 日 via iPhone
    现在用原生也好多花样。。。。最近是学了个用 ts,scss 写,然后用 gulp 转成 js,wxss
    dong568789
        74
    dong568789  
       2021 年 3 月 22 日
    原生 + vant
    runze
        75
    runze  
    &nbs;  2021 年 3 月 22 日
    @wxsm
    1:“小程序与框架的关系与此类似,uniapp 等框架编译以后得到了「原生」代码,仅此而已。”
    很多小程序框架是运行时的,不存在“编译后的原生代码”,除非把它们编译后的那堆 js 当作“原生代码”

    2:“它们这些框架虽然可能也存在自己的坑,但这种坑一般不难解决”
    这种坑很难解决,尤其是对楼主这样不熟悉小程序的
    y4ZIZrCL74b9MYl6
        76
    y4ZIZrCL74b9MYl6  
       2021 年 3 月 22 日   1
    @wxsm 不至于上升到人生攻击的程度,你太敏感了。语言本就是一种工具,没有高低贵贱之分。你很难理解使用原生开发的人,原生就是框架的基础啊,js 就是 ts 的基础,那使用基础,为什么很难理解?你可以有这种想法,但是你要知道这种想法是有偏见的。
    abc123123
        77
    abc123123  
       2021 年 3 月 22 日
    肯定原生的。多端需求的可以 uni
    weixiangzhe
        78
    weixiangzhe  
       2021 年 3 月 22 日 via iPhone
    原生才有学习成本 那玩意看都懒得看 上 taro 或者 remax 吧
    ByteRan
        79
    ByteRan  
       2021 年 3 月 22 日
    @Yokin #66 复杂的需要用 NUVE 模式开发,简单的需要用 VUE 模式就行。
    其次我觉得它用的不是 uniapp 开发的
    1 、为了节省前期成本找外包
    2 、DCloud 是几年前的模式 [问题确实多] ,现在最新的是 uniapp
    3 、自动生成的代码?话说 uniapp 代码全都需要自己写
    flyslow
        80
    flyslow  
       2021 年 3 月 22 日
    看需求
    简单的小程序,一般原生的会比较好一点,链路短,遇到问题好排查。
    复杂的小程序,涉及到需要架构或组织一下的,多人协作开发的,可以考虑 Taro,uni-app 没用过不做评论。
    不看需求就定技术栈属于耍流氓
    Martox
        81
    Martox  
       2021 年 3 月 22 日   1
    推荐一下 mpx,用的是原生结合类 vue 语法,性能比 taro 更好一些吧,更新和修复 issue 也比较快。
    toacnme
        82
    toacnme  
       2021 年 3 月 22 日
    Taro 用了大半年了,还不错
    mogutouer
        83
    mogutouer  
       2021 年 3 月 22 日
    @whypool 不要误人子弟,mpvue 都停更 2 年了,bug 一大堆,数组更新视图都不更新的,属性里不能调方法
    54xavier
        84
    54xavier  
       2021 年 3 月 22 日   1
    一开始用原生,写着不带劲儿,换了 uni-app 每次修改都要重新编译一次,代码多了就觉得挺卡的,报错了调试那些也都不方便,各种参数名、代码片段都是乱七八糟的,最后换回原生,就舒服了。

    强烈建议没有多端需求还是用原生开发,也就是没有数据双向绑定会稍微麻烦一点儿,习惯了还是觉得挺好的。
    vinsony
        85
    vinsony  
       2021 年 3 月 22 日
    不管跨不跨端我都要用 uni,原生就是一坨屎
    8888888888
        86
    8888888888  
       2021 年 3 月 22 日
    uniapp 吧,给你个搭好的 uniapp+ts 的架子,前提你愿意用 ts 的话
    8888888888
        87
    8888888888  
       2021 年 3 月 22 日
    uniapp 吧,给你个搭好的 uniapp+ts 的架子,前提你愿意用 ts 的话
    @timedivision https://github.com/panghujiajia/uniapp-ts
    TomVista
        88
    TomVista  
       2021 年 3 月 22 日
    性能: 原生约等于 uniapp taro 2.x 远大于 kbone taro 3.0 (我记得好像是一个数量级 100/1000,这个样子)

    没写过小程序建议用原生,写过的建议 用编译型的框架,不推荐运行时的主要还是性能问题,

    小程序原生有坑,然后其他框架都有坑上加坑的情况,程度不分先后

    总之,优先原生
    yang137162692
        89
    yang137162692  
       2021 年 3 月 22 日
    uniapp 与 mpvue 二选一的话。

    单单对比长列表渲染表现:mpvue 渲染长列表有压力,一旦状态变化,在低端手机上会发生肉眼可见的卡顿。反观在 uniapp 上这种情况有做特别的优化。并且 uniapp 目前还在更新,mpvue 已经停更一两年了....

    之前使用的是 mpvue,因为部分应用场景渲染数目还是比较大的,尝试过将项目迁移到 uniapp 之后,应付这种场景表现好多了。

    其他比较可以在官方在掘金上面发表的文章上看到 https://juejin.cn/post/6844904118901817351
    zhou01
        90
    zhou01  
       2021 年 3 月 22 日
    用 Taro 用了好久了,感觉还可以
    go522000
        91
    go522000  
       2021 年 3 月 22 日
    嗯。用 uniapp 遇到一个问题,我是用 uniapp+colorui 给客户开发 H5 端,过一年后客户要更新一点东西,改完成后新编译,colorui 的弹出框都不能用了,只能退后上一个版本再重新编译才能用。。。这事我不知道是 colorui 的坑,还是 uniapp 的坑,如果是长期维护的,我还是建议用小程序原生的语言去开发比较好。
    FightPig
        92
    FightPig  
       2021 年 3 月 22 日
    uniapp 最大的问题就是说是开源,你提个 bug 或者 pr,n 久都不会有人理你
    memecoin
        93
    memecoin  
       2021 年 3 月 22 日
    用 uniapp 的人已经版本上线了,那个用原生的还在编译。
    xream
        94
    xream  
       2021 年 3 月 22 日
    有能力填坑的用 uniapp 非常完美
    luoway
        95
    luoway  
       2021 年 3 月 23 日
    没有跨端需求可以考虑自己或自己公司大佬写框架
    Vue 技术栈推荐的只有 uniapp
    框架必须是静态编译以免后续迭代出现性能问题,排除 Taro 3,现在我已经不关注 Taro 的后续发展了
    Taro 2 是静态编译但只支持 React,不满足技术栈要求
    terryloto
        96
    terryloto  
       2021 年 3 月 23 日
    原生
    inhal
        97
    inhal  
       2021 年 3 月 23 日 via Android
    mpxjs
    genesischou
        98
    genesischou  
       2021 年 4 月 26 日
    原生+vue-mini
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4133 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 05:17 PVG 13:17 LAX 21:17 JFK 00:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86