V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xyxc0673
V2EX  ›  程序员

2025 年 10 月小程序开发的最佳技术栈是什么?

  •  
  •   xyxc0673 ·
    xyxc0673 · 16 小时 44 分钟前 · 6573 次点击

    最近要做一个相对来说比较简单的电商小程序,现在在做技术栈的选择

    很多年前曾经使用过 Taro 开发过小程序,当时 Taro 还是热门的选择,但是最近我看 Taro 的仓库像是被废弃了一样,官网 HTTPS 证书 过期了几个星期也没有人更新: https://github.com/NervJS/taro/issues/18419

    有京东的小伙伴知道现在 Taro 还会继续维护吗?

    另外一个热门的选择是 uniapp ,但是我没有 Vue 的开发经验,也不清楚开发体验怎么样

    至于原生开发,在最开始接触小程序的时候,不太喜欢这套语法,没能学习下去

    大家会选择哪套技术栈?

    第 1 条附言  ·  14 小时 53 分钟前
    截止到 10:45 本次评论中提到过的小程序开发技术:

    原生开发:
    官网: https://developers.weixin.qq.com/miniprogram/dev/framework/

    Taro:
    介绍:Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ / 飞书 / 快手 小程序 / H5 / RN / ASCF 元服务 等应用。
    仓库: https://github.com/NervJS/taro
    官网: https://taro.zone/

    uni-app:
    介绍:uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到 iOS 、Android 、鸿蒙 Next 、Web (响应式)、以及各种小程序(微信/支付宝/百度/抖音/飞书/QQ/快手/钉钉/淘宝/京东/小红书)、快应用、鸿蒙元服务等多个平台。
    仓库: https://github.com/dcloudio/uni-app
    官网: https://uniapp.dcloud.net.cn/

    Mpx:
    介绍:良好的开发体验,极致的应用性能,完整的原生兼容,一份源码跨端输出所有小程序平台及 Web 。
    仓库: https://mpxjs.cn/
    官网: https://github.com/didi/mpx

    Vue Mini:
    介绍:基于 Vue 3 的小程序框架
    仓库: https://github.com/vue-mini/vue-mini
    官网: https://vuemini.org/

    MorJS:
    介绍:以多端编译为基础,配以面向全生命周期的插件体系,覆盖从源码到产物的每个阶段,支持各类功能扩展和业务需求。
    仓库: https://github.com/eleme/morjs
    官网: https://mor.ele.me/

    Weapp-vite:
    介绍:把现代化的开发模式带入小程序开发吧
    仓库: https://github.com/weapp-vite/weapp-vite
    官网: https://vite.icebreaker.top/
    76 条回复    2025-10-14 00:46:59 +08:00
    wangxujian
        1
    wangxujian  
       16 小时 38 分钟前
    uniapp?
    NoobNoob030
        2
    NoobNoob030  
       16 小时 30 分钟前
    uniapp 吧,虽然有股味儿,但是好在可以让 ai 来弄
    pigfloyd
        3
    pigfloyd  
       16 小时 23 分钟前
    原生用起来最舒服,有跨平台的可能就 uniapp
    crocoBaby
        4
    crocoBaby  
       16 小时 21 分钟前 via iPhone
    没跨平台的需求千万不要选 uniapp ,现在被技术债绑架了强行用,其实原生才是最好的选择,不论 h5 还是小程序
    twofox
        5
    twofox  
       16 小时 20 分钟前
    要么 uniapp ,要么原生

    语法都很垃圾,但是没什么其它的好选择了
    akakidz
        6
    akakidz  
       16 小时 17 分钟前
    mpx 框架,用起来很舒服
    LimboRunner
        7
    LimboRunner  
       16 小时 13 分钟前
    用 vue 的语法写小程序,之前用过感觉不错。

    至少可以少学一点在别的地方一点卵用都没有的拙劣小程序语法。

    https://vuemini.org/
    yuoooo
        8
    yuoooo  
       16 小时 0 分钟前
    我用 morjs+支付宝原生语法 能编译为支付宝和微信小程序
    94
        9
    94  
       15 小时 56 分钟前
    uni-app ,如果有多个平台同时上架的需求的话。
    如果没有,或者只是未来“有计划”,那么就是上哪个平台,用哪个平台的原生来写。

    ----
    Taro 就从来没有被看好过。小程序本来就不是面向大厂的东西,主要就是一些中小企业在做,或者非互联网传统企业做的配套便利型产品。
    就决定了这些开发者绝大多数主要技术栈都是 Vue 生态的,Taro 用户群规模就不会大,必定会有各种踩坑。

    更何况主力 React 的开发者也不一定能看得上小程序。
    icandoallthings
        10
    icandoallthings  
       15 小时 53 分钟前
    uniapp
    插件相对还是丰富的
    bgm004
        11
    bgm004  
       15 小时 49 分钟前
    只写小程序可以选 uniapp 。原生也问题不大,最近手上的一个小程序就是原生写的。
    tanranran
        12
    tanranran  
       15 小时 49 分钟前   ❤️ 1
    uniapp ,如果你用 vscode 或者 webstrom 写小程序的话,推荐这个框架 https://unibest.tech/
    gdrk
        13
    gdrk  
       15 小时 48 分钟前
    uni 吧,简单、快。如果只针对微信且有性能需求且长期维护那就微信原生。
    laox0
        14
    laox0  
       15 小时 41 分钟前
    ccsulzf0627
        15
    ccsulzf0627  
       15 小时 38 分钟前
    taro 或 uni-app 二选一,我看很多其他框架估计都没经过多少项目的锻炼,原生写不太推荐,这也太难受了
    DesperateNeck
        16
    DesperateNeck  
       15 小时 37 分钟前
    没有多端就原生
    imNull
        17
    imNull  
       15 小时 37 分钟前
    如果只是微信小程序,建议原生,ai 也很溜了,如果跨平台小程序 那还是 uniapp(x)吧
    duanxianze
        18
    duanxianze  
       15 小时 35 分钟前
    uniapp ,别看骂的人多,没人骂的都是没人用的
    horizon
        19
    horizon  
       15 小时 35 分钟前
    snitfk
        20
    snitfk  
       15 小时 34 分钟前
    直接原生,claude 可以非常顺畅的实现功能。
    MEIerer
        21
    MEIerer  
       15 小时 34 分钟前   ❤️ 1
    哭了,在用 taro
    FreshOldMan
        22
    FreshOldMan  
       15 小时 31 分钟前   ❤️ 4
    跨平台都是垃圾,我现在用的 taro ,rn ,和你讲,只要跨平台都是垃圾
    ynxh
        23
    ynxh  
       15 小时 31 分钟前
    taro 是 react 系用的,我觉得挺好的。vue 几乎只能选择原生和 uniapp
    jxee
        24
    jxee  
       15 小时 31 分钟前
    uniapp, 原生半残语法写起来脑壳疼
    renmu
        25
    renmu  
       15 小时 30 分钟前 via Android
    uniapp ,用原生简直就是折磨
    xyxc0673
        26
    xyxc0673  
    OP
       15 小时 29 分钟前
    @FreshOldMan 我用 Flutter 开发过 App ,体感还好🥲,比原生 SwiftUI 开发好点
    ruoxie
        27
    ruoxie  
       15 小时 27 分钟前   ❤️ 1
    @ynxh taro 也可以用 vue 语法,已经写了几个项目了
    leelotov2er
        28
    leelotov2er  
       15 小时 25 分钟前
    uni app, 原生光一个页面四个文件来回切换就觉得恶心
    X0V0X
        29
    X0V0X  
       15 小时 19 分钟前   ❤️ 1
    没有跨端需求我也会上 uniapp 或 taro ,有好的开发体验为什么不用,原生那半残语法简直就是折磨自己
    cwliang
        30
    cwliang  
       15 小时 11 分钟前
    用不用框架取决于是否要多端支持,否则直接原生
    kkchan1999
        31
    kkchan1999  
       15 小时 11 分钟前
    最近用的 uniapp, 后端转全栈硬是靠着 AI 搓了一个小程序出来, 后面还得发布安卓端😂
    summer1942
        32
    summer1942  
       14 小时 59 分钟前
    react 就 taro ,vue 就 uniapp
    wuxuehai2020
        33
    wuxuehai2020  
       14 小时 57 分钟前
    无脑用 uniapp ,不管你有没有多端需求,用熟悉了,有其他需求你也能随便撸了
    wangsd
        34
    wangsd  
       14 小时 50 分钟前   ❤️ 1
    原生那个语法贼恶心,简单功能勉强做得下去,还不如 uniapp ,
    zb1141920796
        35
    zb1141920796  
       14 小时 37 分钟前
    mark ,目前只维护过 uniapp 开发的
    lonjin
        36
    lonjin  
       14 小时 35 分钟前
    uniapp
    huaweii
        37
    huaweii  
       14 小时 19 分钟前 via Android
    不折腾就找资料多的,找有大公司背书的。taro 和 uniapp 都行。

    taro 半死不活的都 N 年了,但你猜怎么着,连哄蒙都开始逐渐支持了😄
    op351
        38
    op351  
       14 小时 0 分钟前
    不管用什么 如果遇到小程序本身就有的功能残缺 比如 canvas 上的一些东西 或者 css 的一些特性
    得用 web-view 组件直接打开网页做外挂才能补足
    当然 夸张一点的话直接全局套个 web-view 也不是不行
    tangping
        39
    tangping  
       13 小时 57 分钟前
    uniapp 一把梭,需要原生就写插件调用就行 😆
    flmn
        40
    flmn  
       13 小时 49 分钟前
    原生不好么?
    superfatboy
        41
    superfatboy  
       13 小时 41 分钟前
    uniapp 吧, 虽然有点那啥,但是开发起来,还行!
    songsongqaq
        42
    songsongqaq  
       13 小时 26 分钟前
    代码就得写原生的 咖啡必须得喝手冲的
    tanranran
        43
    tanranran  
       12 小时 55 分钟前
    @flmn 那语法谁用谁知道
    ydong
        44
    ydong  
       11 小时 43 分钟前
    为什么这么多人推荐原生,就我觉得原生一坨纯折磨吗(仅写过旧版原生 vue2 那种)
    fuchish112
        45
    fuchish112  
       11 小时 28 分钟前
    小程序用 uniapp 还挺不错的
    alleluya
        46
    alleluya  
       11 小时 23 分钟前
    如果不需要跨平台 只有微信小程序 那 vue-mini 是我个人认为比较好的选择 原生小程序+Vue3 的写法开发体验更好
    TArysiyehua
        47
    TArysiyehua  
       11 小时 20 分钟前
    说实话用原生开发得了,以前没 AI 查询技术跟 api 很麻烦,现在有 AI 用原生贼快
    pddgoods
        48
    pddgoods  
       11 小时 18 分钟前
    @ydong 如果不跨平台,原生是最好的。解决问题更简单。
    cvooc
        49
    cvooc  
       11 小时 13 分钟前
    @crocoBaby 问一下遇到什么技术债了,能分享下不.
    SanjinGG
        50
    SanjinGG  
       11 小时 9 分钟前
    @crocoBaby 你觉得没用啊,架不住 sb 老板想一套多用啊
    SanjinGG
        51
    SanjinGG  
       11 小时 8 分钟前
    @cvooc 各种各样的坑和适配问题吧
    cvooc
        52
    cvooc  
       11 小时 6 分钟前
    小程序原生很坑, 不管公司还是个人项目, 项目后期发展少说得上支付宝和微信俩平台, 尽量选能跨端的最好. taro 官方我现在是感觉纯 kpi 项目不怎么上心. https 过期都是小意思, 天天换域名是真操蛋. auto.io/taro.zone/jd.com 混着用, 现在 github 上简介的 taroui 的简介地址还是 taro-ui.taro.zone,这个链接废弃很久很久了,少说有 2 年. 我不认为 github 换个废弃的简介链接能有什么影响. 单纯没负责人不上心.
    cvooc
        53
    cvooc  
       10 小时 57 分钟前
    @SanjinGG #51 还好其实,我从 18 年底 1.3 版开始用的 uni-app.感觉没多坑,主要就是一些跨平台的取舍问题.比如 APP 不能自定义转场动画这种.小程序端也就是一个 shaodowDOM 和 H5 差异导致不能直接在组件上写 class 注意下就行.我老看有人说 uni 坑,就是没人说遇到了啥问题 o.o 想帮忙然后或者提前避坑没人理我
    cvooc
        54
    cvooc  
       10 小时 52 分钟前
    @SanjinGG #51 奈何 taro 不给力,我从一开始就一起盯得 uni 和 taro. 最初想用 taro 结果官方个坑货. taro-ui 进了文档先来个支持 RN 端编译,下一行又来个那句(RN 端暂不支持). 这句话从 19 年挂到了现在. 目前我是没找到 taro 同时支持 RN 的组件库. uni 好歹有个 nvue/uvue 还有一些库支持.
    guin
        55
    guin  
       10 小时 51 分钟前
    只用 uniapp , 原生很久很久以前用过,用 vue2 差不多,但非要整的和 vue 不一样,还弄出一个什么 wxs 用的有点恶心
    crocoBaby
        56
    crocoBaby  
       10 小时 46 分钟前
    @cvooc 拍照闪退,工具插件配套久,构建速度慢,迭代升级依赖难之类的
    SanjinGG
        57
    SanjinGG  
       10 小时 46 分钟前
    @cvooc #53 那感觉你们的 app 其实只算是 H5 套壳吧,他们坑比较多的地方主要都是要用原生模块的,蓝牙、陀螺仪、定位这种。
    crocoBaby
        58
    crocoBaby  
       10 小时 44 分钟前
    @SanjinGG 老板把这个多端适配的成本转移在前端的身上了
    cvooc
        59
    cvooc  
       10 小时 42 分钟前
    @crocoBaby #56 离线打包? 我是建议能云打包就用云打包, 排队打包那点时间不算啥, 时间久了升级依赖是挺提心吊胆的. 我是去年才把公司纯热更新两年的项目找机会升了下级. 长时间不更新依赖我也是慌得哈哈哈哈.
    crocoBaby
        60
    crocoBaby  
       10 小时 40 分钟前
    @cvooc 已经卡在 node16 了,升级无人敢动,现在每次写 web 项目都要 nvm 切版本,烦死了
    cvooc
        61
    cvooc  
       10 小时 37 分钟前
    @SanjinGG #57 这块看项目了, 以前的版本是恶心接原生插件要自己打 aar 包然后在打 debug 包测试, 或者 native.js 勉强反射一些原生接口用,现在好多了可以直接 uts 接厂商 SDK. 的确做跨端需要一部分原生开发技术做支撑. 坑的是大多数公司期待的是一个前端自学完成开发而不是找原生程序员支援.
    AnotherSola
        62
    AnotherSola  
       10 小时 35 分钟前
    如果只是小程序,mpx 真的可以的
    lyxxxh2
        63
    lyxxxh2  
       9 小时 44 分钟前
    @crocoBaby
    +1,我真不喜欢 uniapp 。
    在小程序:
    1. 有时候不刷新代码,必须得重启项目才行
    2. hubilderx 编译一次,微信再编译一次,慢。
    原生小程序语法,我没觉得恶心,相比原生 js,好多了。
    不过开发上好很多,支持 vue3 。 (真不想写各种 export defaut{data()..)

    app:
    1. 语法问题直接白屏,没报错,找不到问题的。
    - 记得 19 年,h5 正常,而换行导致白屏。
    2. 性能也就那样
    - 在低端机,比如自助收银机不流畅,跟开发者也有一定关系。
    3. 要啥硬件的,都得写 andorid 原生
    - 调试给我整吐了,找 bug 时:生成"本地 app 打包资源" -> 复制到 andorid stdio (重复十几次)
    4. 打包也一样恶心,出个 bug,云打包十几分钟。
    - 最后我自己离线打包了,但是一些云端插件又用不了(因为不能下载)。
    似乎 uniappx 的 uts 改善了不少,没用过。
    BeforeTooLate
        64
    BeforeTooLate  
       9 小时 42 分钟前
    小项目直接原生+ai 非常快可以落地
    sodesga
        65
    sodesga  
       9 小时 40 分钟前
    你开发小程序是为了练技术,那就随便,如果是为了盈利,那还是 uniapp
    腾讯自己的广告分成太低了。朋友的 uniapp 广告返利链接单笔 80 多
    cvooc
        66
    cvooc  
       9 小时 28 分钟前
    @lyxxxh2 早期离线打包调试插件的确恶心,现在好很多了.我现在就是用 nvue 做自助收银机,性能还好.学校店 2 小时 400 单扛住了, 中间优化了一下内存泄漏问题. 做跨端就是走最小侵入路线,能云打包就云打包.实在没必要折腾离线打包, 定期更新依赖是个大问题.
    phpcxy
        67
    phpcxy  
       9 小时 24 分钟前
    我们用 uniapp ,正常业务做起来都挺好的
    xiaoriri666
        68
    xiaoriri666  
       9 小时 18 分钟前
    没得选,无脑 uniapp 是最成熟的方案
    eurkidu
        69
    eurkidu  
       8 小时 1 分钟前
    @tanranran #12 +1 ,前两个月刚新调研开发过微信小程序,uniapp 只开发小程序,就可以不用 hbuildx ,那个实在用不来。

    https://unibest.tech/ 建的项目,UI 库选的 wot-ui, 整合了下 https://demo.wot-design-uni.cn/ 的部分功能,开发体验跟普通 vue web 开发差不多。

    当然因为有些小程序跟 uniapp 的限制,还是有些限制的,特别是二次封装组件,因为不支持 listeners 透传,以及插槽透传也有坑,封装起来非常难受,直接单纯写业务页面+业务组件,用起来倒是还挺好

    虽然是只开发微信小程序,但相比用原生选 uniapp 开发,除了原生语法外,还有个有小优点(算是遇到的一个坑,因为是 uniapp 开发的解决起来比较方便)

    就是我们开发的页面需要上传用户附件,是 PDF 的那种附件,微信小程序选择文件的 API 有限制,你选图片之类的,可以直接单独拉起相册,但是你上传文件,就只给了一个从聊天文件中选择的 API

    导致小程序原生页面只能做成,用户先要把文件发到文件传输助手,然后再选择的效果,后面查了半天说小程序原生页面没辙,只能跳转一个 web-view 页面,使用 web 方式上传文件,这时候可以直接选择手机文件,但是这时候要单独新写一个项目去写一个文件上传页面,上传完之后再把文件地址返回给小程序,就挺麻烦的。

    这时候灵机一动,因为 uniapp 可以直接打包成 web 页面发布,所以就直接在小程序项目里面,写了一个文件上传页面,但其实是 only for web 的,然后把项目重新打包发布成 web ,小程序里面再 webview 嵌套用于上传,这样直接一个项目就全搞定了,上传代码逻辑还都是同一份,因为后面跟产品讨论,做成选择了用户既可以从聊天文件中选择(方便电脑发给手机的文件),也可以用 web 方式直接选择手机文件。
    crocoBaby
        70
    crocoBaby  
       7 小时 50 分钟前
    @lyxxxh2 心痛每一个 uniapp 开发者
    moxiaonai
        71
    moxiaonai  
       5 小时 13 分钟前
    熟悉 react 的话,taro 还可以
    nicefrp
        72
    nicefrp  
       4 小时 51 分钟前
    即使没有多端的需求,也推荐使用 uniapp ,因为有魔法加持,可以使用状态管理
    phyng
        73
    phyng  
       3 小时 54 分钟前
    我们用自研 React 框架,适配小程序、网页、React Native ,比学习其他人的框架要简单很多,持续迭代稳定运行多年了
    zhdy89380062
        74
    zhdy89380062  
       3 小时 48 分钟前
    现在 vibe coding 了啊,随便什么框架,最终都靠 AI 了。curso cc codex
    chobitssp
        75
    chobitssp  
       1 小时 23 分钟前
    只做小程序 选择 Vue Mini
    BeiChuanAlex
        76
    BeiChuanAlex  
       52 分钟前
    @FreshOldMan #22 非常赞同,这些跨平台有一个算一个,都不如原生,因为搞跨平台最后还是要搞原生的,有些问题没有原生你就很难搞懂,也很难解决,那为啥不一开始就搞原生呢
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1190 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    ♥ Do have faith in what you're doing.