ultraUI
ultraUI
  • 发布:2026-01-04 09:11
  • 更新:2026-01-04 09:11
  • 阅读:79

马上2026年了uni-app-x会是未来吗

分类:uni-app x

早在2021年就做了uview组件库对vue3的适配版本,因为之前自己项目的经验,加上vue3虽然与vue2有些许不同,但整体向下兼容性是很高的,总体而言需要修改适配的工作量并不会太大,也就2天就完成了初步的基础适配(虽然基础适配耗时并不长,但其后的修复与完善仍然需要投入很多时间,期间也得到了很多热心用户的PR,感谢他们)。

dcloud于2022年就发布了uni-app-x,看到之后其实当时久觉得这个一定是未来的风向,自2015年步入移动端开发,我曾经历并尝试了几乎大部分主流的跨平台移动开发方案,从最开始的cordova(phonegap)不知道有没有人还有印象,当时配合国外一个知名UI框架Framework7做页面很合适,淘宝还定制了一个自己的Framework7版本,再到后来的reactnative、fultter(这俩方案尝试没多久就放弃了,因为其门槛、复杂度高了些,并不利于向前端普及),真正好的跨平台方案一定要门槛低,对前端开发着友好,reactnative/fultter的环境配置就会拦住一大批人,而会带来显著的副作用,生态起来会很慢很慢,更别提他们对web的支持很有限。几年过去了事实也是如此,至少在国内,rn/flutter的占比很低。

后来微信推出了小程序,国内跨平台届更是迎来一次大洗牌,在国内跨平台势必要支持微信小程序,当时美团率先推出了mpVue,后来Dcloud推出了uni-app后来居上,从此逐步发展壮大,可以看出来dcloud有着很强的研发实力,从框架的平台支持、vue的二次开发等等方面显著领先于其他方案,虽然bug也不少,但可以理解,跨平台要比普通开发个原生App什么的吃研发,天生就复杂麻烦容易出兼容问题。

记得2024年8月立项打算开始给uview-plus适配uni-app-x,适配之初就发现难度跟当初适配vue3不是一个等级的。一开始就遇到一个几个问题,其一当时uni-app-x还不支持联合类型,而uview中很多组件的props同时兼容string和number,这在js方案里能方便用户,但是在当时适配就必须取舍,当时尝试先改了几个组建让它们只支持单类型,一番尝试后发现不太现实,这样会对uview的API兼容性产生巨大破坏。

于是适配计划进度放慢,一般改着一边等uni-app-x完善,除了上面的联合类型问题,遇到的第二个问题是调试问题,可能是对mixin支持还不完善,在mixin情况下很多报错文件与行数毫不相关,让人摸不着头脑,没办法只能剔除所有其他代码,采用二分法一步步定位问题在哪段代码里。适配过程中是一个很繁杂的过程,看这屏幕上成百上千个报错要一个个定位解决。

除了以上问题其实很有遇到很多适配问题,比如button组建不支持嵌套子组建、动画支持还未彻底完成等各种问题不一一列举,总之开发者使用uni-app-x会比uni-app要更耐心一些。

其后由于其他项目原因,uni-app-x的适配计划不断延期,不断有用户询问,随着uni-app-x越来越完善,于是在2026年来临之前,决定将适配工作完成。经过一些几乎通宵的推进,在尽量保证uview接口兼容性的前提下,目前终于完成了初步的适配。已经发布到插件市场https://ext.dcloud.net.cn/plugin?id=26339。为了区分以及AI识别等场景考虑,新版本名称改为uview-ultra将于uview-plus同步维护,当然必定还存在一些未完成的部分和细节问题,后续将逐步修复与完善。目前组建本身仍然是保持选项式API,未来将逐步改写组合式。

最后2026年了,你开始使用uni-app-x了,我认为它确实是未来的方向。一个编译到各端原生的跨平台方案,且有着强大的生态与用户基础,它的发展一定是值得期待的。(曾经微软也做过类似的事情,用C#编译到ios和安卓原生,但是太不彻底了,没有进行统一封装,事实上结果是用C#写两端,代码复用性并不高,而uni-app-x是目前已知最成熟、最完善的编译到各端原生跨平台方案)。

1 关注 分享
DCloud_云服务_Mal

要回复文章请先登录注册