
最近要做一个相对来说比较简单的电商小程序,现在在做技术栈的选择
很多年前曾经使用过 Taro 开发过小程序,当时 Taro 还是热门的选择,但是最近我看 Taro 的仓库像是被废弃了一样,官网 HTTPS 证书 过期了几个星期也没有人更新: https://github.com/NervJS/taro/issues/18419
有京东的小伙伴知道现在 Taro 还会继续维护吗?
另外一个热门的选择是 uniapp ,但是我没有 Vue 的开发经验,也不清楚开发体验怎么样
至于原生开发,在最开始接触小程序的时候,不太喜欢这套语法,没能学习下去
大家会选择哪套技术栈?
1 wangxujian 2025 年 10 月 13 日 uniapp? |
2 NoobNoob030 2025 年 10 月 13 日 uniapp 吧,虽然有股味儿,但是好在可以让 ai 来弄 |
3 pigfloyd 2025 年 10 月 13 日 原生用起来最舒服,有跨平台的可能就 uniapp |
4 crocoBaby 2025 年 10 月 13 日 via iPhone 没跨平台的需求千万不要选 uniapp ,在被技术债绑架了强行用,其实原生才是最好的选择,不论 h5 还是小程序 |
5 twofox 2025 年 10 月 13 日 要么 uniapp ,要么原生 语法都很垃圾,但是没什么其它的好选择了 |
6 akakidz 2025 年 10 月 13 日 mpx 框架,用起来很舒服 |
7 LimboRunner 2025 年 10 月 13 日 |
8 yuoooo 2025 年 10 月 13 日 我用 morjs+支付宝原生语法 能编译为支付宝和微信小程序 |
9 94 2025 年 10 月 13 日 uni-app ,如果有多个平台同时上架的需求的话。 如果没有,或者只是未来“有计划”,那么就是上哪个平台,用哪个平台的原生来写。 ---- Taro 就从来没有被看好过。小程序本来就不是面向大厂的东西,主要就是一些中小企业在做,或者非互联网传统企业做的配套便利型产品。 就决定了这些开发者绝大多数主要技术栈都是 Vue 生态的,Taro 用户群规模就不会大,必定会有各种踩坑。 更何况主力 React 的开发者也不一定能看得上小程序。 |
10 icandoallthings 2025 年 10 月 13 日 uniapp 插件相对还是丰富的 |
11 bgm004 2025 年 10 月 13 日 只写小程序可以选 uniapp 。原生也问题不大,最近手上的一个小程序就是原生写的。 |
12 tanranran 2025 年 10 月 13 日 uniapp ,如果你用 vscode 或者 webstrom 写小程序的话,推荐这个框架 https://unibest.tech/ |
13 gdrk 2025 年 10 月 13 日 uni 吧,简单、快。如果只针对微信且有性能需求且长期维护那就微信原生。 |
15 ccsulzf0627 2025 年 10 月 13 日 taro 或 uni-app 二选一,我看很多其他框架估计都没经过多少项目的锻炼,原生写不太推荐,这也太难受了 |
16 DesperateNeck 2025 年 10 月 13 日 没有多端就原生 |
17 imNull 2025 年 10 月 13 日 如果只是微信小程序,建议原生,ai 也很溜了,如果跨平台小程序 那还是 uniapp(x)吧 |
18 duanxianze 2025 年 10 月 13 日 uniapp ,别看骂的人多,没人骂的都是没人用的 |
19 horizon 2025 年 10 月 13 日 | /tr>
20 snitfk 2025 年 10 月 13 日 直接原生,claude 可以非常顺畅的实现功能。 |
21 MEIerer 2025 年 10 月 13 日 哭了,在用 taro |
22 FreshOldMan 2025 年 10 月 13 日 跨平台都是垃圾,我现在用的 taro ,rn ,和你讲,只要跨平台都是垃圾 |
23 ynxh 2025 年 10 月 13 日 taro 是 react 系用的,我觉得挺好的。vue 几乎只能选择原生和 uniapp |
24 jxee 2025 年 10 月 13 日 uniapp, 原生半残语法写起来脑壳疼 |
25 renmu 2025 年 10 月 13 日 via Android uniapp ,用原生简直就是折磨 |
26 xyxc0673 OP @FreshOldMan 我用 Flutter 开发过 App ,体感还好,比原生 SwiftUI 开发好点 |
28 leelotov2er 2025 年 10 月 13 日 uni app, 原生光一个页面四个文件来回切换就觉得恶心 |
29 X0V0X 2025 年 10 月 13 日 没有跨端需求我也会上 uniapp 或 taro ,有好的开发体验为什么不用,原生那半残语法简直就是折磨自己 |
30 cwliang 2025 年 10 月 13 日 用不用框架取决于是否要多端支持,否则直接原生 |
31 kkchan1999 2025 年 10 月 13 日 最近用的 uniapp, 后端转全栈硬是靠着 AI 搓了一个小程序出来, 后面还得发布安卓端 |
32 summer1942 2025 年 10 月 13 日 react 就 taro ,vue 就 uniapp |
33 wuxuehai2020 2025 年 10 月 13 日 无脑用 uniapp ,不管你有没有多端需求,用熟悉了,有其他需求你也能随便撸了 |
34 wangsd 2025 年 10 月 13 日 原生那个语法贼恶心,简单功能勉强做得下去,还不如 uniapp , |
35 zb1141920796 2025 年 10 月 13 日 mark ,目前只维护过 uniapp 开发的 |
36 lonjin 2025 年 10 月 13 日 uniapp |
37 huaweii 2025 年 10 月 13 日 via Android 不折腾就找资料多的,找有大公司背书的。taro 和 uniapp 都行。 taro 半死不活的都 N 年了,但你猜怎么着,连哄蒙都开始逐渐支持了 |
38 op351 2025 年 10 月 13 日 不管用什么 如果遇到小程序本身就有的功能残缺 比如 canvas 上的一些东西 或者 css 的一些特性 得用 web-view 组件直接打开网页做外挂才能补足 当然 夸张一点的话直接全局套个 web-view 也不是不行 |
39 tangping 2025 年 10 月 13 日 uniapp 一把梭,需要原生就写插件调用就行 |
40 flmn 2025 年 10 月 13 日 原生不好么? |
41 superfatboy 2025 年 10 月 13 日 uniapp 吧, 虽然有点那啥,但是开发起来,还行! |
42 songsongqaq 2025 年 10 月 13 日 代码就得写原生的 咖啡必须得喝手冲的 |
44 ydong 2025 年 10 月 13 日 为什么这么多人推荐原生,就我觉得原生一坨纯折磨吗(仅写过旧版原生 vue2 那种) |
45 fuchish112 2025 年 10 月 13 日 小程序用 uniapp 还挺不错的 |
46 alleluya 2025 年 10 月 13 日 如果不需要跨平台 只有微信小程序 那 vue-mini 是我个人认为比较好的选择 原生小程序+Vue3 的写法开发体验更好 |
47 TArysiyehua 2025 年 10 月 13 日 说实话用原生开发得了,以前没 AI 查询技术跟 api 很麻烦,现在有 AI 用原生贼快 |
52 cvooc 2025 年 10 月 13 日 小程序原生很坑, 不管公司还是个人项目, 项目后期发展少说得上支付宝和微信俩平台, 尽量选能跨端的最好. taro 官方我现在是感觉纯 kpi 项目不怎么上心. https 过期都是小意思, 天天换域名是真操蛋. auto.io/taro.zone/jd.com 混着用, 现在 github 上简介的 taroui 的简介地址还是 taro-ui.taro.zone,这个链接废弃很久很久了,少说有 2 年. 我不认为 github 换个废弃的简介链接能有什么影响. 单纯没负责人不上心. |
53 cvooc 2025 年 10 月 13 日 @SanjinGG #51 还好其实,我从 18 年底 1.3 版开始用的 uni-app.感觉没多坑,主要就是一些跨平台的取舍问题.比如 APP 不能自定义转场动画这种.小程序端也就是一个 shaodowDOM 和 H5 差异导致不能直接在组件上写 class 注意下就行.我老看有人说 uni 坑,就是没人说遇到了啥问题 o.o 想帮忙然后或者提前避坑没人理我 |
54 cvooc 2025 年 10 月 13 日 @SanjinGG #51 奈何 taro 不给力,我从一开始就一起盯得 uni 和 taro. 最初想用 taro 结果官方个坑货. taro-ui 进了文档先来个支持 RN 端编译,下一行又来个那句(RN 端暂不支持). 这句话从 19 年挂到了现在. 目前我是没找到 taro 同时支持 RN 的组件库. uni 好歹有个 nvue/uvue 还有一些库支持. |
55 guin 2025 年 10 月 13 日 只用 uniapp , 原生很久很久以前用过,用 vue2 差不多,但非要整的和 vue 不一样,还弄出一个什么 wxs 用的有点恶心 |
59 cvooc 2025 年 10 月 13 日 @crocoBaby #56 离线打包? 我是建议能云打包就用云打包, 排队打包那点时间不算啥, 时间久了升级依赖是挺提心吊胆的. 我是去年才把公司纯热更新两年的项目找机会升了下级. 长时间不更新依赖我也是慌得哈哈哈哈. |
61 cvooc 2025 年 10 月 13 日 @SanjinGG #57 这块看项目了, 以前的版本是恶心接原生插件要自己打 aar 包然后在打 debug 包测试, 或者 native.js 勉强反射一些原生接口用,现在好多了可以直接 uts 接厂商 SDK. 的确做跨端需要一部分原生开发技术做支撑. 坑的是大多数公司期待的是一个前端自学完成开发而不是找原生程序员支援. |
62 AnotherSola 2025 年 10 月 13 日 如果只是小程序,mpx 真的可以的 |
63 lyxxxh2 2025 年 10 月 13 日 @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 改善了不少,没用过。 |
64 BeforeTooLate 2025 年 10 月 13 日 小项目直接原生+ai 非常快可以落地 |
65 sodesga 2025 年 10 月 13 日 你开发小程序是为了练技术,那就随便,如果是为了盈利,那还是 uniapp 腾讯自己的广告分成太低了。朋友的 uniapp 广告返利链接单笔 80 多 |
66 cvooc 2025 年 10 月 13 日 @lyxxxh2 早期离线打包调试插件的确恶心,现在好很多了.我现在就是用 nvue 做自助收银机,性能还好.学校店 2 小时 400 单扛住了, 中间优化了一下内存泄漏问题. 做跨端就是走最小侵入路线,能云打包就云打包.实在没必要折腾离线打包, 定期更新依赖是个大问题. |
67 phpcxy 2025 年 10 月 13 日 我们用 uniapp ,正常业务做起来都挺好的 |
68 xiaoriri666 2025 年 10 月 13 日 没得选,无脑 uniapp 是最成熟的方案 |
69 eurkidu 2025 年 10 月 13 日 @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 方式直接选择手机文件。 |
71 moxiaonai 2025 年 10 月 13 日 熟悉 react 的话,taro 还可以 |
72 nicefrp 2025 年 10 月 13 日 即使没有多端的需求,也推荐使用 uniapp ,因为有魔法加持,可以使用状态管理 |
73 phyng 2025 年 10 月 13 日 我们用自研 React 框架,适配小程序、网页、React Native ,比学习其他人的框架要简单很多,持续迭代稳定运行多年了 |
74 zhdy89380062 2025 年 10 月 13 日 现在 vibe coding 了啊,随便什么框架,最终都靠 AI 了。curso cc codex |
75 chobitssp 2025 年 10 月 14 日 只做小程序 选择 Vue Mini |
76 BeiChuanAlex 2025 年 10 月 14 日 @FreshOldMan #22 非常赞同,这些跨平台有一个算一个,都不如原生,因为搞跨平台最后还是要搞原生的,有些问题没有原生你就很难搞懂,也很难解决,那为啥不一开始就搞原生呢 |
77 kkbear 2025 年 10 月 14 日 除非是多端应用,就现在的 AI 时代,啥都没什么学习成本了,为啥不用原生 |
78 chungon 2025 年 10 月 14 日 用过原生、uniapp 和 taro ,目前还是推荐 uniapp ,社区活跃,坑不多 |
79 lizy0329 2025 年 10 月 14 日 说用 AI 写的,真用过 AI ?大学生吧? |
80 lyxxxh2 2025 年 10 月 14 日 @cvooc 我们也是用 nvue 机子:selfpose60 cpu:rk3299 4g 定时器从 30 秒倒计时 -> 突然到 25,各种一卡一卡的。 开发者也有问题: 比如: 1. 30 秒的定时器,每个页面都有 - 应该设置全局的 2. 有些迷惑操作,但是有效的 ![]() 按理解来说,关闭当前页面,后续代码不执行了吧? 其实执行的。 还有:每次获取配置,都要发起一次网络请求。 3. 最后订单完成了,再关闭所有页面 https://i.ibb.co/N6j4BH2N/v.png 这是还是单页应用吗? 我估计是维护不了,内存泄露找不到问题,干脆重载得了。 因为之前经常白屏,听说是内存爆满原因。 真的诠释了:能用就行。 |
82 Cloudust 2025 年 10 月 14 日 虽然 uniapp 开发 app 是依托,但开发不同平台的小程序还是不错的,vue 一堆组件库能用,并且可以 ai 一把唆,有个开源整合项目好像叫 best-uni 吧,可以直接抄基础功能。再说了,现在谁开发 app 用 uniapp ,ra 和 flutter 都吊打好吧 |
83 kakki 2025 年 10 月 15 日 原生就是一坨翔,uniapp 或者 taro |
84 tanranran 2025 年 10 月 15 日 @FreshOldMan 如果是跨屏台,你刚好懂原生的,去写 Flutter/uniapp ,你会发现,比原生开发舒服多了 |
85 geekv 2025 年 10 月 22 日 Taro 自从接入了鸿蒙以后,感觉核心开发者绝大部分精力都被鸿蒙占走了。我觉得支持鸿蒙就是个错误的决定,太小众了。如果有一天我要开发鸿蒙,我还是选择去看鸿蒙文档。 |
86 lyxxxh2 2025 年 12 月 11 日 刚用了 uniappx 来开发微信小程序,根本调试不了,巨坑。 V3 版本编译微信小程序开发工具里的 AppData 乱码: https://ask.dcloud.net.cn/question/144684 *** 官方提供:vue-tools 可以解决,又出现新问题: uni-vue-devtools 不支持 script setup 语法糖:https://ask.dcloud.net.cn/question/168781 这都 2025 年了!!! 谁开发 vue3 不用 setup 啊??? uni-vue-devtools 只能废弃 *** 那我将变量和方法挂载到全局,自己用命令行打印可以了吧? web: ``` <script setup lang='ts'> const n1 = ref<number>(0) const n1_fn = () => "hello" </script> <script lang='ts'> export default { mounted() { window.currThis = this._.setupState }, } </script> 在浏览器控制台: window.currThis.n1.value = 3 window.currThis.n1_fn() 可以非常轻松的调用变量和方法测试。 ``` 而 uniappx 的小程序,完全不行,找半天原型链,都找不到。 最后只能手动暴露: ``` const n1 = ref<number>(0) onLoad(async (options: any) => { wx.currThis = n1 }) ``` |
87 avenger 2025 年 12 月 27 日 via iPhone 请问一下 op 选了啥?哈哈 |