求推荐一个小程序开发框架, uniapp、taro 还是直接微信原生开撸

2019-08-05 11:12:07 +08:00
 gaigechunfeng

最近想开发一款小程序,既然重新挖坑,想着要不要上一个跨平台的开发框架。 uniapp、taro,原生的,flutter。 大家都在用哪个呢,说说优缺点呢。

16779 次点击
所在节点    程序员
109 条回复
clijiac
2019-08-05 22:47:12 +08:00
原生吧..
dodo2012
2019-08-05 22:49:28 +08:00
taro 是最过最爽的,其它 几个都不顺手,有自动提示,react 语法,bug 修的也快,
Jackliu
2019-08-05 22:50:19 +08:00
多端都坑
之前公司用 mpvue
现在公司用 taro
总比微信原生香
james2013
2019-08-05 23:20:52 +08:00
原生的也挺快的,撸过几个了
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

mogutouer
2019-08-05 23:43:16 +08:00
mpvue 主要是两个最大的问题

1. 不支持模板属性计算,也就是说模板属性或{{}}里的东西不能像原生 vue 一样调用方法或类,这遇到一些需要计算的,比如说翻译字词静态数组复用之类的很不好搞,后来用 mixin 了一个假的属性用 Proxy 才绕过去。

2. 数据更新视图不更新,这主要是在组件外赋值给组件,然后这个对象或数组更新了,但组件内的视图不变,如果组件多嵌套几层尤其明显,解决方案是把整个对象重新赋值一遍,但在三层组件里还是不好使,要手动写很多通知方法告诉组件数据改变了,然后手动再 this.xxx = Object.assign({},this.xxx) 之类方式去强制刷新视图,这也导致刷新数据量巨大,这也是很多人对 mpvue 的诟病,2.0 开始就有了,到现在快一年了还没有解决这个最基本的问题。

当然轮成熟度来说,mpvue 是试过的框架中较为可以的了,不少组件支持,很多坑也有方法可以绕过去,前端也是心累,半年换一个框架,不但框架换,连平台也越来越多,一天天的净瞎搞。
gulullu
2019-08-06 05:03:16 +08:00
我用的原生,再也不想碰小程序了。。。坑太多了
jry
2019-08-06 08:33:30 +08:00
@gaigechunfeng 其实还好,跨平台没有没有坑的,相对而言,uniapp 已经很好了。还支持原生插件。
gaigechunfeng
2019-08-06 08:53:29 +08:00
@wzw 要放弃了,还是用原生了。
昨天开始写 uniapp,它有原生组件,uniapp ui,和插件市场。
它官方文档说了好多这个兼容,那个兼容的,感觉比较乱。插件市场良莠不齐,有的还编不过。
不支持 npm,第三方的 vue 还用不了。

还要学习它这个糟心框架,我直接原生一把唆了。唉:-(
Geo200
2019-08-06 09:07:58 +08:00
用过 Taro,坑是挺多,但基本上新的坑到官方 github 上提 issues 也能很快得到解决。
rannie
2019-08-06 09:27:40 +08:00
如果将来需要 alipay 啥的小程序,taro 很不错尤其支持 jsx 语法,框架也一直在维护和修复 bug
simapple
2019-08-06 09:37:55 +08:00
还是用原生就好,原生的代码没有多复杂已经相对简单了,等开发运行的不错了,再做一些封装,就 ok 了
xichengh
2019-08-06 09:41:20 +08:00
只有微信小程序的话建议原生
hhhfffhhh
2019-08-06 09:42:37 +08:00
先用原生,了解和熟悉了里面的 api 组件 生命周期等之后,再转到其他框架
gaigechunfeng
2019-08-06 09:42:44 +08:00
@simapple 我觉得这几个平台支付宝,微信,头条小程序是不是语法都类似的。
所以用原生开发出一个,复制粘贴改一改能不能很快的搞过去?

如果这样我直接原生撸了。
cloudzqy
2019-08-06 09:47:25 +08:00
@gaigechunfeng 那你有需求或者改 bug,岂不是要改到吐?
JavaFirstMaster
2019-08-06 09:48:10 +08:00
我这边之前用原生写了一个项目,后来用的 uni-app.
我个人的感觉而言,原生小程序(特指微信小程序,其他的原生我没写过,不过觉得应该差不多)本身就是个坑中之坑,巨坑之坑. 你敢相信一个模仿 vue 等现代化的前端框架会不支持双向数据绑定??(写个表单 input 的数据获取让你酸爽!!) 看起来是个 MVVP,可是 js 给 data 里的数据赋值只能用 set 方法??(不用 set 方法页面内容不能实时变动你能忍得了??). 还有其他的各种设定...
至于 uni-app,我觉得是很不错的框架了. 很多人说有坑,我还没遇到过. uni-app 文档也挺好的了. 至少人家支持双向数据绑定,支持简单方便的组件化等等,有 vue 基础的几乎没有学习成本. 而且我可以在 idea 里编写代码,支持实时编译,然后用微信开发程序预览调试(微信开发工具就只是个弟弟,槽点太多就不说了)
gaigechunfeng
2019-08-06 10:16:02 +08:00
@JavaFirstMaster uniapp 目前好像还不支持 npm 安装第三方插件吧。
昨天我试了不行,网上说最新的版本还是不支持
cloudzqy
2019-08-06 10:18:25 +08:00
目前也在考虑 taro 还是 uni-app,团队是 react 的,但是感觉用 vue 写小程序也没多少学习成本。
看了下 taro 的最佳实践(避坑指南),我觉得这个框架需要注意的点是真的不少,虽然他把很多坑都写出来了,但是不可避免还有技术能力不怎么强的同事或者外包,新晋同事等等。
感觉开发者已经很努力了,但是把 jsx 变模板这方面有些事情是真的没办法做到。
zzlit
2019-08-06 10:29:10 +08:00
react 就选 taro,vue 就选 uni 呗,不过如果两个都能写的话,我建议 taro,目前在使用 uni 回复反馈的速度没有 taro 快(无论是群还是 github ),因为我觉得这个才是最重要的。还有一个就是 uni 有个自己的编辑器 HBuilder,用这个创建的项目没有 package.json,所以想另外电脑使用还得下一个 HBuilder (这我有点不能忍),如果不用 HBuilder 使用脚手架搭建的话就是比 HBuilder 搭建的版本要快也有不稳定之类(详情看文档就好了),各有利弊。至于性能和支持的不同平台两者差别我觉得都不大。其实我现在是想 uni 转 taro 的,只是团队不允许加开发完了#doge

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/589124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX