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

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

  •  
  •   xyxc0673 ·
    xyxc0673 · 2 天前 · 8608 次点击

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

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

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

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

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

    大家会选择哪套技术栈?

    第 1 条附言  ·  2 天前
    截止到 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/
    84 条回复    2025-10-15 13:41:58 +08:00
    wangxujian
        1
    wangxujian  
       2 天前
    uniapp?
    NoobNoob030
        2
    NoobNoob030  
       2 天前
    uniapp 吧,虽然有股味儿,但是好在可以让 ai 来弄
    pigfloyd
        3
    pigfloyd  
       2 天前
    原生用起来最舒服,有跨平台的可能就 uniapp
    crocoBaby
        4
    crocoBaby  
       2 天前 via iPhone
    没跨平台的需求千万不要选 uniapp ,现在被技术债绑架了强行用,其实原生才是最好的选择,不论 h5 还是小程序
    twofox
        5
    twofox  
       2 天前
    要么 uniapp ,要么原生

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

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

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

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

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

    taro 半死不活的都 N 年了,但你猜怎么着,连哄蒙都开始逐渐支持了😄
    op351
        38
    op351  
       2 天前
    不管用什么 如果遇到小程序本身就有的功能残缺 比如 canvas 上的一些东西 或者 css 的一些特性
    得用 web-view 组件直接打开网页做外挂才能补足
    当然 夸张一点的话直接全局套个 web-view 也不是不行
    tangping
        39
    tangping  
       2 天前
    uniapp 一把梭,需要原生就写插件调用就行 😆
    flmn
        40
    flmn  
       2 天前
    原生不好么?
    superfatboy
        41
    superfatboy  
       2 天前
    uniapp 吧, 虽然有点那啥,但是开发起来,还行!
    songsongqaq
        42
    songsongqaq  
       2 天前
    代码就得写原生的 咖啡必须得喝手冲的
    tanranran
        43
    tanranran  
       2 天前
    @flmn 那语法谁用谁知道
    ydong
        44
    ydong  
       2 天前
    为什么这么多人推荐原生,就我觉得原生一坨纯折磨吗(仅写过旧版原生 vue2 那种)
    fuchish112
        45
    fuchish112  
       2 天前
    小程序用 uniapp 还挺不错的
    alleluya
        46
    alleluya  
       2 天前
    如果不需要跨平台 只有微信小程序 那 vue-mini 是我个人认为比较好的选择 原生小程序+Vue3 的写法开发体验更好
    TArysiyehua
        47
    TArysiyehua  
       2 天前
    说实话用原生开发得了,以前没 AI 查询技术跟 api 很麻烦,现在有 AI 用原生贼快
    pddgoods
        48
    pddgoods  
       2 天前
    @ydong 如果不跨平台,原生是最好的。解决问题更简单。
    cvooc
        49
    cvooc  
       2 天前
    @crocoBaby 问一下遇到什么技术债了,能分享下不.
    SanjinGG
        50
    SanjinGG  
       2 天前
    @crocoBaby 你觉得没用啊,架不住 sb 老板想一套多用啊
    SanjinGG
        51
    SanjinGG  
       2 天前
    @cvooc 各种各样的坑和适配问题吧
    cvooc
        52
    cvooc  
       2 天前
    小程序原生很坑, 不管公司还是个人项目, 项目后期发展少说得上支付宝和微信俩平台, 尽量选能跨端的最好. taro 官方我现在是感觉纯 kpi 项目不怎么上心. https 过期都是小意思, 天天换域名是真操蛋. auto.io/taro.zone/jd.com 混着用, 现在 github 上简介的 taroui 的简介地址还是 taro-ui.taro.zone,这个链接废弃很久很久了,少说有 2 年. 我不认为 github 换个废弃的简介链接能有什么影响. 单纯没负责人不上心.
    cvooc
        53
    cvooc  
       2 天前
    @SanjinGG #51 还好其实,我从 18 年底 1.3 版开始用的 uni-app.感觉没多坑,主要就是一些跨平台的取舍问题.比如 APP 不能自定义转场动画这种.小程序端也就是一个 shaodowDOM 和 H5 差异导致不能直接在组件上写 class 注意下就行.我老看有人说 uni 坑,就是没人说遇到了啥问题 o.o 想帮忙然后或者提前避坑没人理我
    cvooc
        54
    cvooc  
       2 天前
    @SanjinGG #51 奈何 taro 不给力,我从一开始就一起盯得 uni 和 taro. 最初想用 taro 结果官方个坑货. taro-ui 进了文档先来个支持 RN 端编译,下一行又来个那句(RN 端暂不支持). 这句话从 19 年挂到了现在. 目前我是没找到 taro 同时支持 RN 的组件库. uni 好歹有个 nvue/uvue 还有一些库支持.
    guin
        55
    guin  
       2 天前
    只用 uniapp , 原生很久很久以前用过,用 vue2 差不多,但非要整的和 vue 不一样,还弄出一个什么 wxs 用的有点恶心
    crocoBaby
        56
    crocoBaby  
       2 天前
    @cvooc 拍照闪退,工具插件配套久,构建速度慢,迭代升级依赖难之类的
    SanjinGG
        57
    SanjinGG  
       2 天前
    @cvooc #53 那感觉你们的 app 其实只算是 H5 套壳吧,他们坑比较多的地方主要都是要用原生模块的,蓝牙、陀螺仪、定位这种。
    crocoBaby
        58
    crocoBaby  
       2 天前
    @SanjinGG 老板把这个多端适配的成本转移在前端的身上了
    cvooc
        59
    cvooc  
       2 天前
    @crocoBaby #56 离线打包? 我是建议能云打包就用云打包, 排队打包那点时间不算啥, 时间久了升级依赖是挺提心吊胆的. 我是去年才把公司纯热更新两年的项目找机会升了下级. 长时间不更新依赖我也是慌得哈哈哈哈.
    crocoBaby
        60
    crocoBaby  
       2 天前
    @cvooc 已经卡在 node16 了,升级无人敢动,现在每次写 web 项目都要 nvm 切版本,烦死了
    cvooc
        61
    cvooc  
       2 天前
    @SanjinGG #57 这块看项目了, 以前的版本是恶心接原生插件要自己打 aar 包然后在打 debug 包测试, 或者 native.js 勉强反射一些原生接口用,现在好多了可以直接 uts 接厂商 SDK. 的确做跨端需要一部分原生开发技术做支撑. 坑的是大多数公司期待的是一个前端自学完成开发而不是找原生程序员支援.
    AnotherSola
        62
    AnotherSola  
       2 天前
    如果只是小程序,mpx 真的可以的
    lyxxxh2
        63
    lyxxxh2  
       2 天前
    @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  
       2 天前
    小项目直接原生+ai 非常快可以落地
    sodesga
        65
    sodesga  
       2 天前
    你开发小程序是为了练技术,那就随便,如果是为了盈利,那还是 uniapp
    腾讯自己的广告分成太低了。朋友的 uniapp 广告返利链接单笔 80 多
    cvooc
        66
    cvooc  
       2 天前
    @lyxxxh2 早期离线打包调试插件的确恶心,现在好很多了.我现在就是用 nvue 做自助收银机,性能还好.学校店 2 小时 400 单扛住了, 中间优化了一下内存泄漏问题. 做跨端就是走最小侵入路线,能云打包就云打包.实在没必要折腾离线打包, 定期更新依赖是个大问题.
    phpcxy
        67
    phpcxy  
       2 天前
    我们用 uniapp ,正常业务做起来都挺好的
    xiaoriri666
        68
    xiaoriri666  
       2 天前
    没得选,无脑 uniapp 是最成熟的方案
    eurkidu
        69
    eurkidu  
       2 天前
    @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  
       2 天前
    @lyxxxh2 心痛每一个 uniapp 开发者
    moxiaonai
        71
    moxiaonai  
       2 天前
    熟悉 react 的话,taro 还可以
    nicefrp
        72
    nicefrp  
       2 天前
    即使没有多端的需求,也推荐使用 uniapp ,因为有魔法加持,可以使用状态管理
    phyng
        73
    phyng  
       2 天前
    我们用自研 React 框架,适配小程序、网页、React Native ,比学习其他人的框架要简单很多,持续迭代稳定运行多年了
    zhdy89380062
        74
    zhdy89380062  
       2 天前
    现在 vibe coding 了啊,随便什么框架,最终都靠 AI 了。curso cc codex
    chobitssp
        75
    chobitssp  
       2 天前
    只做小程序 选择 Vue Mini
    BeiChuanAlex
        76
    BeiChuanAlex  
       2 天前
    @FreshOldMan #22 非常赞同,这些跨平台有一个算一个,都不如原生,因为搞跨平台最后还是要搞原生的,有些问题没有原生你就很难搞懂,也很难解决,那为啥不一开始就搞原生呢
    kkbear
        77
    kkbear  
       1 天前
    除非是多端应用,就现在的 AI 时代,啥都没什么学习成本了,为啥不用原生
    chungon
        78
    chungon  
       1 天前
    用过原生、uniapp 和 taro ,目前还是推荐 uniapp ,社区活跃,坑不多
    lizy0329
        79
    lizy0329  
       1 天前
    说用 AI 写的,真用过 AI ?大学生吧?
    lyxxxh2
        80
    lyxxxh2  
       1 天前
    @cvooc
    我们也是用 nvue
    机子:selfpose60 cpu:rk3299 4g
    定时器从 30 秒倒计时 -> 突然到 25,各种一卡一卡的。
    开发者也有问题:
    比如:
    1. 30 秒的定时器,每个页面都有
    - 应该设置全局的
    2. 有些迷惑操作,但是有效的

    按理解来说,关闭当前页面,后续代码不执行了吧? 其实执行的。
    还有:每次获取配置,都要发起一次网络请求。

    3. 最后订单完成了,再关闭所有页面
    https://i.ibb.co/N6j4BH2N/v.png
    这是还是单页应用吗?
    我估计是维护不了,内存泄露找不到问题,干脆重载得了。
    因为之前经常白屏,听说是内存爆满原因。
    真的诠释了:能用就行。
    huaweii
        81
    huaweii  
       1 天前 via Android
    @cvooc 兄弟,你离线打包的场景是 Android 和 iOS 吗?
    Cloudust
        82
    Cloudust  
       1 天前
    虽然 uniapp 开发 app 是依托,但开发不同平台的小程序还是不错的,vue 一堆组件库能用,并且可以 ai 一把唆,有个开源整合项目好像叫 best-uni 吧,可以直接抄基础功能。再说了,现在谁开发 app 用 uniapp ,ra 和 flutter 都吊打好吧
    kakki
        83
    kakki  
       15 小时 49 分钟前
    原生就是一坨翔,uniapp 或者 taro
    tanranran
        84
    tanranran  
       14 小时 55 分钟前
    @FreshOldMan 如果是跨屏台,你刚好懂原生的,去写 Flutter/uniapp ,你会发现,比原生开发舒服多了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:37 · PVG 04:37 · LAX 13:37 · JFK 16:37
    ♥ Do have faith in what you're doing.