最近想开发一款小程序,既然重新挖坑,想着要不要上一个跨平台的开发框架。 uniapp、taro,原生的,flutter。 大家都在用哪个呢,说说优缺点呢。
1
puilu 2019-08-05 12:13:02 +08:00
坐等经验之谈
|
2
googleGirl 2019-08-05 12:26:41 +08:00
坐等经验之谈(其实我最近也在看哪个小程序框架好用)
|
3
JimmyTinsley 2019-08-05 14:00:10 +08:00
同坐等经验之谈
|
4
gaigechunfeng OP 我靠。都在坐等经验之谈。
经验之谈什么时候来? |
5
jry 2019-08-05 14:02:36 +08:00 via iPhone 1
uniapp 生态最好
|
6
momowei 2019-08-05 14:10:31 +08:00
我用的 taro 还行
|
7
Donne 2019-08-05 14:10:35 +08:00
坐等经验之谈
|
8
whypool 2019-08-05 14:21:23 +08:00
mpvue
|
9
hhh798 2019-08-05 14:24:06 +08:00
flutter 和小程序有一毛钱关系吗?跨平台建议 taro,不跨平台原生,uniapp,巨坑,
|
10
coolair 2019-08-05 14:24:42 +08:00
一般情况下是这样的:
项目急需再多平台上线 /能给框架填坑---->多端开发框架---->上线---->原生重构 只考虑微信小程序---->原生 |
11
123s 2019-08-05 14:25:14 +08:00
flutter 都出来,大开眼界
|
12
licoycn 2019-08-05 14:26:26 +08:00
我用的 wepy
|
13
miniwade514 2019-08-05 14:26:53 +08:00
flutter 都可以写小程序了?
|
14
gaigechunfeng OP @123s 老铁别闹。我知道 flutter 不支持小程序,但是 web,ios,android 还是支持的,也属于跨系统的前端框架。
一起都写上去了。 |
15
gaigechunfeng OP @coolair 你的发言靠谱,中肯。多谢老铁。
|
16
leisure 2019-08-05 14:31:30 +08:00
只有小程序的话建议原生
taro 的坑虽然不多,但是我们也踩了几个了... |
17
momowei 2019-08-05 14:32:39 +08:00
原生的开发效率和开发体验不行,原生当然好,但是原生开发效率真的慢,这很要命
|
18
gaigechunfeng OP @whypool mpvue 都停更了不是?
|
19
gaigechunfeng OP |
20
cyndihuifei 2019-08-05 14:56:10 +08:00
我也是用 wepy
|
21
cuzfinal 2019-08-05 15:07:22 +08:00
都没用过,不过看着 taro 还行,毕竟京东小程序就是用 taro 搞得。
|
22
zhuweiyou 2019-08-05 15:20:10 +08:00
过来人告诉你,没有一个靠谱的,你去看下这几个项目的 issue 有多少 bug 就知道了。
被坑惨了,相信我,还是原生撸比较好。 |
23
aneureka 2019-08-05 15:24:00 +08:00 via Android
如果喜欢或习惯了 react 的话,taro 还挺舒服的,目前做过两个小程序都是用 taro,虽然都比较小…如果没做过的话,可以先从原生或 vue 系的入手
|
24
gaigechunfeng OP @aneureka 我目前掌握的是 vue,我比较喜欢 taro 的 UI 风格,但又要去转 react。
如果保持 vue 的话,我选来选去倾向于 uniapp 了,因为东西太多了,极大加快开发速度 :D |
25
gaigechunfeng OP |
26
gaigechunfeng OP @zhuweiyou 前面做一个小程序,微信开发者工具用着真的蛋疼。
我相信你说的,多了一个框架就多了许多潜在的坑,这个应该是难免的了。 |
27
123s 2019-08-05 15:32:20 +08:00
mpvue 不太建议使用,挺多坑。开发速度还行
|
28
falcon05 2019-08-05 15:33:23 +08:00 via iPhone
原生就很多坑,再加一层坑上坑
|
29
skiy 2019-08-05 15:34:45 +08:00
...我的理解,就一个 UI。
|
30
max1024 2019-08-05 15:36:34 +08:00
wepy
|
31
calmlyman 2019-08-05 15:46:13 +08:00 4
说坑的那堆人,一上来就说坑,也不说坑的地方在哪里?如果是你们代码没写好导致的坑,你也说是坑?所以要回答就回答仔细一点,把优缺点说详细了
|
32
thinkwei2012 2019-08-05 15:46:43 +08:00
刚好看到滴滴的,不知道咋样 https://github.com/didi/chameleon
|
33
thisisgpy 2019-08-05 15:49:59 +08:00
原生,没有兼容性问题。
|
34
calmlyman 2019-08-05 15:50:44 +08:00 1
如果你不熟悉 vue 或者 react,那么就建议你直接用原生撸,不然增加学习成本
1.熟悉 vue 的话,可以用 mpvue (本人开发了 2 个了,没遇到什么大问题),开发效率比原生高,uniapp 的话没用过不做讨论 2.熟悉 react 的话(我没用过 react ),就看楼上的建议吧,taro 可以看看 3.我不熟悉 flutter,这个不是写 app 的吗? |
35
sugars 2019-08-05 15:54:46 +08:00
另外说一下我使用 mpvue 的其他原因
1. 微信开发者工具太烂,我很抗拒用它 2. 用 mpvue 的话,我用的是 webstorm (用了几年了),智能程度没法比,光是效率就不知道提高多少了 |
37
CasualYours 2019-08-05 16:11:59 +08:00
只用过 taro。作为类 React 的框架,最大的问题是你不能完全按照 React 的语法去实现,好在官网文档详实。如果之前写过 React,会很好上手。
|
38
fansangg 2019-08-05 16:29:41 +08:00
react 撸个官方教程应该就会了吧?然后再熟悉熟悉 redux,没什么难度啊。
|
39
pangleon 2019-08-05 16:38:21 +08:00
用过原生,没啥问题啊,原生本身就已经学习了新时代前端框架的内容,反而是这些框架的拥趸觉得你学习的不伦不类,我就要用本身的框架的方式去开发,因为我熟悉了。
现在用框架开发看重的并不是这个框架开发时候的一些特性,而是附加品,比如 taro 的一键生成多端。有个 HBUILDER 带的框架做的比较好,但是核心代码闭源,自己考虑吧。 |
40
Mephisto233 2019-08-05 16:42:04 +08:00
现在就是在用 Taro 写小程序,感觉还不错
|
41
ChefIsAwesome 2019-08-05 16:48:09 +08:00 via Android
企业号的话,调拍摄,支付之类接口的直接原生写。其他 webview。微信那审核坑爹,直接 webview 省掉不知道多少事。
|
42
Sniper416 2019-08-05 17:01:36 +08:00
不考虑多端直接上原生!讨论小程序出来 flutter 是什么鬼?
|
43
santom 2019-08-05 17:03:29 +08:00
uni 不错 写过一个背单词。 原生 emmm 写过一个原生 简直要疯
|
44
MrUser 2019-08-05 17:10:53 +08:00
建议用原生。
跨平台的框架通常都有这种问题:列出来的功能就是它能实现的,没列出来就是它做不了的,当你以为”基本满足需求可以采用“时就掉到坑里了,因为框架没有的那一部分真的没有。。办法。。。去。。。。实现,或者实现起来相当地困难,甚至于要去改动框架本身以至于不能再跟随官方的版本来升级框架。 |
45
yEhwG10ZJa83067x 2019-08-05 17:19:03 +08:00
我用原生,编辑器直接 sublime,楼上说微信原生编辑器不好意思直接用第三方编辑器不就行了
接下去如果小程序项目多的话有考虑 wepy |
46
gaigechunfeng OP @calmlyman mpvue 不是停更了吗?我 vue 还算熟悉,fork 学习过两个开源项目。
我就是觉得再转 react,taro,有点学不动的感觉。 |
47
TobiahShaw 2019-08-05 17:22:52 +08:00
基本上跨平台开发都需要原生经验,很多框架文档里都有写。你可以使用跨平台框架,框架不能实现的功能再写原生插件。
|
48
gaigechunfeng OP @ChefIsAwesome 老哥这是个思路。直接 h5 了,原生 web 应用了,也不用考虑什么玩意框架了。
|
49
lidongyx 2019-08-05 17:25:56 +08:00 via iPhone
微信开发者工具确实体验不太好,但是可以用 VS Code 啊,VS Code 大法好
|
50
TobiahShaw 2019-08-05 17:26:06 +08:00
走 web 也可以,需要原生功能的时候走 JS 桥
|
51
sakuraran 2019-08-05 17:28:18 +08:00
不跨平台建议原生
|
52
uTuw2C6uf964Kx6o 2019-08-05 17:31:20 +08:00
最近用 mpvue 写了一个,平常放到本地调试,但是遇到需要调用小程序 api 的就必须放到微信开发者工具里使用,不知道大家怎么解决的
|
53
aneureka 2019-08-05 18:09:12 +08:00
@gaigechunfeng #24 我好像收不到你回复的提醒.. 如果只是喜欢 UI 的话没必要转 taro,基于 vue 的挺多的
|
54
ck65 2019-08-05 18:14:59 +08:00
一直在用 taro。功能复杂的话就不会选小程序了,这东西更擅长于做一些 E2E 的业务。
|
55
acgsan 2019-08-05 18:26:01 +08:00
用的 mpvue2.0 做的商城,已兼容微信与支付宝小程序,坑还是比较多的,我没用过 react,taro 京东这个框架就没去考虑了
|
56
chenhonzhou 2019-08-05 18:28:08 +08:00
uniapp 要 hb, 个人用起来感觉好卡啊
taro 没玩过, 推荐原生小程序一把梭 /狗头保命 |
57
Orainsink 2019-08-05 19:04:27 +08:00
原生一把梭.
小程序很多坑,用二次封装的框架只会遇到更多坑. |
58
mmdsun 2019-08-05 19:12:28 +08:00 via Android
uniapp,我们用的这个。
|
59
xi_lin 2019-08-05 19:35:14 +08:00
mpvue 以前 template/slot 之类的功能好像有问题
后来不知道怎么样 |
60
opengg 2019-08-05 19:42:35 +08:00
原生小程序写出来的代码很难维护的。
推荐 Taro,虽然 Taro 跟进 React 有点慢,但最起码能让你 80%以上的代码看起来很 React,很多最佳实践是相通的。 |
61
xeneizes 2019-08-05 19:50:44 +08:00
用原生,二次转译的工具坑太多
|
62
Sparetire 2019-08-05 20:02:50 +08:00 via Android
都有坑,原生也有,框架更多,从构建工具到运行时的坑各种各样,业务都写不完,踩一个就很吃屎的感觉。。开发体验巨差,小程序这种傻逼玩意能火真是前端🐶的灾难
|
63
sumaolin619 2019-08-05 20:17:17 +08:00
看开发经验吧,有 react 经验,taro 上手挺快的!
|
64
azh7138m 2019-08-05 20:19:26 +08:00 2
mpvue/taro 都是要编译回小程序的语法,所以有些东西不好支持,对 props 能传的东西也会有限制
wepy 1 我是不建议用,虚假的计算属性,每次是全算一遍,压根没有依赖收集,根本不是 vue ;对你计算属性书写顺序有关,一个计算属性依赖另一个计算属性的时候,被依赖的必须写在前面; 1.7.2 和几个 beta 对图片路径处理不一样可真的让人蛋疼;组件循环传参后,组件内只能做展示,没法做处理,只有 item 这个变量你能取到;问题多到我心痛。 wepy 2 没用过。 如果是技术项目我推荐 https://github.com/remaxjs/remax @nioncodotcom @miniwade514 @123s @gaigechunfeng @calmlyman @Sniper416 CanvasKit/Skia Backend 按道理是可以的,这个是 highly experimental 才有的,需要自己适配一下相关的接口 见 https://github.com/flutter/flutter_web/blob/master/docs/canvaskit.md |
65
larendorrx 2019-08-05 20:30:27 +08:00
没人说官方的 kbone 嘛,刚好最近的业务在用,也一直在跟 kbone 的开发反馈,简单说下吧。
kbone 模拟了小程序中的 DOM、BOM,不像 mpvue 那样把 vue 语法编译成小程序语法,是从 DOM 层面来解决跨端的问题,是跨 web+小程序的。写法不用变,加上 axios 的 adapter,cookie 的 adapter,基本上没有什么大坑了,这两天刚把一个业务的视图+逻辑层迁移过去,真的挺好用的。 开始也试过 mpvue,限制太多了,也考虑过 taro,但是刚好赶上 kbone 内测发布,技术栈不用迁移了。 然后官方的微信社区就是用 kbone 搞的,所以不用担心维护的问题。 理论上说 react 也可以支持,但是官方说他们没有业务用 react,所以想先把 vue 支持好。 |
66
azh7138m 2019-08-05 20:31:46 +08:00
@azh7138m 不好意思,重看了一下还需要一个 wasm 环境,这个在小程序里面只有真机调试的时候可用,实际运行的时候似乎没有了
|
67
skyadmin 2019-08-05 20:41:15 +08:00
mpx 了解一下?
|
68
redbuck 2019-08-05 20:44:25 +08:00
用过 wepy,mpvue,下次搞绝对直接原生。
wepy 巨坑无比,我用的时候还是 wepy1,刚出没多久,原生还没有组件,调研的时候看到这个框架支持组件就上了,结果现在那个小程序现在已经放弃维护了。wepy 的组件非常粗糙,同一个页面如果一个组件有两个实例,那你得注册两个不同的名字...除此之外还有一堆问题,当然这都是 wepy1,最新版就不清楚了,反正我不会再试了。 mpvue 则是官方好像不维护了,小程序本身也在升级,它追的不紧。 说到这个,所有这些号称跨多个平台的框架,跨的越多越不稳定。只要有一个端有改动,框架没跟上,你就得抓瞎。 |
69
gaigechunfeng OP 已经上了 uni 的贼船,希望能死的不那么痛苦😂
|
70
liyaoo 2019-08-05 20:54:02 +08:00 via iPhone
我们用 uni
|
71
wzw 2019-08-05 21:04:01 +08:00
|
72
janxin 2019-08-05 21:31:39 +08:00
wepy 1 有坑,很多人都踩过,你能搜到答案,不过太老了,还有一些开发者认为不是 bug 的坑
uniapp 我们在用,只能说还行,也有坑,我们还遇到过没答案的就很难受,只能找官方修 bug taro 目前也还行,就是官方 release 的进度其实我还算满意,最后只不过没选,因为是 react 语法的 上面提到的方案不要用来跨平台,都是巨坑 |
73
OSF2E 2019-08-05 21:58:43 +08:00
原生,taro 用的多一点,为了追求跨平台,阉割了太多的原生小程序特性,很多 react 特性又没实现完全或者过时,有种被吊在半山腰上也不行下也不行的感觉
|
74
OSF2E 2019-08-05 21:59:19 +08:00
接#73,推荐用小程序原生框架
|
76
zhuzhibin 2019-08-05 22:20:44 +08:00 via iPhone
Taro 重度用户
|
78
lneoi 2019-08-05 22:40:30 +08:00
这样看来。。。只有原生了
|
79
lneoi 2019-08-05 22:41:53 +08:00
对了 滴滴有两个 一个 Mpx 一个 Chameleon 用过的评价下
|
81
clijiac 2019-08-05 22:47:12 +08:00
原生吧..
|
82
dodo2012 2019-08-05 22:49:28 +08:00
taro 是最过最爽的,其它 几个都不顺手,有自动提示,react 语法,bug 修的也快,
|
83
Jackliu 2019-08-05 22:50:19 +08:00
多端都坑
之前公司用 mpvue 现在公司用 taro 总比微信原生香 |
84
james2013 2019-08-05 23:20:52 +08:00 via Android
原生的也挺快的,撸过几个了
|
85
mogutouer 2019-08-05 23:29:42 +08:00
最早是原生的,会 vue 上手也还好,后来几个框架出来了,试了几个选了当时最成熟的 mpvue,然后被 mpvue 坑了好久,看到网易的 megalo 出来本来想转,结果看 issues 也是 bug 一大堆,但这都几个月过去了,mpvue 也没更新,应该是弃坑了,至今还有着最基本的 bug (数据更新了组件视图不更新,尤其是对象的对象或数组内对象更新)
所以接下来,想试试 uniapp,听说 mpvue 可以直接转,等到很闲的时候就试一下,他家有个开发工具,其中主题颜色说是为了所有程序员的健康而生,看到这个下面的评论觉得蛮有意思的,我也是只要黑底,看不惯什么护眼黄绿,mac 大部分窗口都是黑色的了。 https://ask.dcloud.net.cn/article/35112 |
86
mogutouer 2019-08-05 23:43:16 +08:00 1
mpvue 主要是两个最大的问题
1. 不支持模板属性计算,也就是说模板属性或{{}}里的东西不能像原生 vue 一样调用方法或类,这遇到一些需要计算的,比如说翻译字词静态数组复用之类的很不好搞,后来用 mixin 了一个假的属性用 Proxy 才绕过去。 2. 数据更新视图不更新,这主要是在组件外赋值给组件,然后这个对象或数组更新了,但组件内的视图不变,如果组件多嵌套几层尤其明显,解决方案是把整个对象重新赋值一遍,但在三层组件里还是不好使,要手动写很多通知方法告诉组件数据改变了,然后手动再 this.xxx = Object.assign({},this.xxx) 之类方式去强制刷新视图,这也导致刷新数据量巨大,这也是很多人对 mpvue 的诟病,2.0 开始就有了,到现在快一年了还没有解决这个最基本的问题。 当然轮成熟度来说,mpvue 是试过的框架中较为可以的了,不少组件支持,很多坑也有方法可以绕过去,前端也是心累,半年换一个框架,不但框架换,连平台也越来越多,一天天的净瞎搞。 |
87
gulullu 2019-08-06 05:03:16 +08:00
我用的原生,再也不想碰小程序了。。。坑太多了
|
88
jry 2019-08-06 08:33:30 +08:00 via iPhone
@gaigechunfeng 其实还好,跨平台没有没有坑的,相对而言,uniapp 已经很好了。还支持原生插件。
|
89
gaigechunfeng OP @wzw 要放弃了,还是用原生了。
昨天开始写 uniapp,它有原生组件,uniapp ui,和插件市场。 它官方文档说了好多这个兼容,那个兼容的,感觉比较乱。插件市场良莠不齐,有的还编不过。 不支持 npm,第三方的 vue 还用不了。 还要学习它这个糟心框架,我直接原生一把唆了。唉:-( |
90
Geo200 2019-08-06 09:07:58 +08:00
用过 Taro,坑是挺多,但基本上新的坑到官方 github 上提 issues 也能很快得到解决。
|
91
rannie 2019-08-06 09:27:40 +08:00
如果将来需要 alipay 啥的小程序,taro 很不错尤其支持 jsx 语法,框架也一直在维护和修复 bug
|
92
simapple 2019-08-06 09:37:55 +08:00
还是用原生就好,原生的代码没有多复杂已经相对简单了,等开发运行的不错了,再做一些封装,就 ok 了
|
93
xichengh 2019-08-06 09:41:20 +08:00
只有微信小程序的话建议原生
|
94
hhhfffhhh 2019-08-06 09:42:37 +08:00
先用原生,了解和熟悉了里面的 api 组件 生命周期等之后,再转到其他框架
|
95
gaigechunfeng OP |
96
cloudzqy 2019-08-06 09:47:25 +08:00
@gaigechunfeng 那你有需求或者改 bug,岂不是要改到吐?
|
97
JavaFirstMaster 2019-08-06 09:48:10 +08:00 1
我这边之前用原生写了一个项目,后来用的 uni-app.
我个人的感觉而言,原生小程序(特指微信小程序,其他的原生我没写过,不过觉得应该差不多)本身就是个坑中之坑,巨坑之坑. 你敢相信一个模仿 vue 等现代化的前端框架会不支持双向数据绑定??(写个表单 input 的数据获取让你酸爽!!) 看起来是个 MVVP,可是 js 给 data 里的数据赋值只能用 set 方法??(不用 set 方法页面内容不能实时变动你能忍得了??). 还有其他的各种设定... 至于 uni-app,我觉得是很不错的框架了. 很多人说有坑,我还没遇到过. uni-app 文档也挺好的了. 至少人家支持双向数据绑定,支持简单方便的组件化等等,有 vue 基础的几乎没有学习成本. 而且我可以在 idea 里编写代码,支持实时编译,然后用微信开发程序预览调试(微信开发工具就只是个弟弟,槽点太多就不说了) |
98
gaigechunfeng OP @JavaFirstMaster uniapp 目前好像还不支持 npm 安装第三方插件吧。
昨天我试了不行,网上说最新的版本还是不支持 |
99
cloudzqy 2019-08-06 10:18:25 +08:00
目前也在考虑 taro 还是 uni-app,团队是 react 的,但是感觉用 vue 写小程序也没多少学习成本。
看了下 taro 的最佳实践(避坑指南),我觉得这个框架需要注意的点是真的不少,虽然他把很多坑都写出来了,但是不可避免还有技术能力不怎么强的同事或者外包,新晋同事等等。 感觉开发者已经很努力了,但是把 jsx 变模板这方面有些事情是真的没办法做到。 |
100
zzlit 2019-08-06 10:29:10 +08:00 1
react 就选 taro,vue 就选 uni 呗,不过如果两个都能写的话,我建议 taro,目前在使用 uni 回复反馈的速度没有 taro 快(无论是群还是 github ),因为我觉得这个才是最重要的。还有一个就是 uni 有个自己的编辑器 HBuilder,用这个创建的项目没有 package.json,所以想另外电脑使用还得下一个 HBuilder (这我有点不能忍),如果不用 HBuilder 使用脚手架搭建的话就是比 HBuilder 搭建的版本要快也有不稳定之类(详情看文档就好了),各有利弊。至于性能和支持的不同平台两者差别我觉得都不大。其实我现在是想 uni 转 taro 的,只是团队不允许加开发完了#doge
|