uniapp 开发,unibest>HBuilderX?

25 阅读5分钟

1.为何放弃又为何重探

为啥会有这篇文章,只要是之前简单的clone unibest代码,只是简单了解,并没有深入代码。在之前有个开发小程序的任务,时间紧,任务重,当时本来是想使用unibest作为模板开发,但是后面放弃了。放弃的主要原因是不够了解,对新框架的担忧,怕项目出现不可控的情况。

在初次接触unibest时,我曾因其代码结构与传统HBuilderX项目差异过大而放弃使用——尤其是面对<route>块、自动路由生成等陌生概念时,担忧框架的不可控性会影响紧急的小程序项目。然而,经过深度代码剖析后,我发现:​​unibest的革新仅在于开发体验,而非运行机制​​。其底层仍严格遵循uniapp官方规范,只是通过Vite插件链实现了高效开发

2.路由定义

unibest约定式路由,是基于文件的路由系统。使用了vite-plugin-uni-pages插件 image.png

我当时看到这个代码,懵了。这是啥路由方式,跟HBuilderX创建的项目有啥区别?难道是两套跳转路由方式?vue-router?

我们先了解vite-plugin-uni-pages插件,也就是文件的路由系统是干嘛的。这个插件的作用是只需在 src/pages 目录下新建页面文件夹和 .vue 文件,插件会自动扫描并生成路由配置,无需手动维护 pages.json。

传统HBuilderX项目 vs Unibest 路由对比
​维度​HBuilderX传统方案Unibest约定式路由
​配置方式​手动编辑pages.json,易遗漏更新文件即路由:src/pages/*.vue自动生成配置
​元数据管理​分散在pages.json通过<route lang="json5">块内联声明7
​开发效率​每新增页面需同步配置创建.vue文件即完成路由注册
技术实现解析​
  • ​插件作用​​:扫描src/pages目录,将文件路径转换为路由规则,动态生成pages.json
  • ​跳转行为​​:仍使用uni.navigateTo等官方API,与HBuilderX项目完全一致。
  • ​优势​​:消除pages.json合并冲突,减少冗余配置代码

总结:这种书写方式只是简化了操作,最终目的是插件会根据你在src/pages创建的文件,自动在pages.json文化生成对应的路由信息。所以,跳转一样,路由系统还是uniapp官方的那一套,没有任何区别。放心大胆的书写吧!

文件的路由系统实操截图

  • 手动在pages目录下创建了文件,并编写route块代码 image.png

  • 插件自动生成的路由配置信息,此处生成是插件自动行为 image.png

3.layout布局

  • 使用到了vite-plugin-uni-layouts 插件,跟路由一样的,只是代码转换,一起配套使用。
  • 这里的 layouts 原理是什么?

在你当前的 unibest 项目中,layouts(布局) 是通过插件和约定式目录结构实现的页面复用方案。 本质上就是页面自动嵌套在布局组件中,实现页面结构和样式的复用。还是跟vite-plugin-uni-pages插件一样,自动帮你生成替换代码。可以通过HBuilderX创建的项目与unibest创建的项目比对,dom结构是一样的。不要被这种方式吓到了,最终生成的代码结构是一样的,本质上还是是通过插件进行代码转换。你写的 layouts、route 配置等,最终都会被插件“消化”,变成普通的 vue 组件嵌套和 pages.json 路由配置。

对比项Vite + vite-plugin-uni-pages(有 layouts)HBuilderX 原生(无 layouts)
布局定义支持 layouts 目录,自动包裹页面不支持,需每页手动引入
页面指定布局 块指定,自动生效不支持,无法自动切换布局
代码复用高度复用,维护方便代码重复,维护成本高
工程体验现代前端最佳实践传统方式,功能有限
|

4.unibest的其他uniapp官方vite插件(开发体验升级,运行时不妥协)

本质是代码转换,转换成uniapp对应的代码,实现体验一致,但是简化了开发体验。如果这个unibest框架中,路由使用vue-router,我相信大家使用都会头大吧。uniapp项目本身的路由系统相当于成熟,如果这里使用vue-router,你得调试小程序端,App端,h5端,鸿蒙端。好在unibest这个项目本身的出发点,只是为了提供更好的开发体验,使用前端最新的技术栈。初衷只是提升开发体验,不是为了增加不可控的新特性,增加开发者的心智负担。

5.总结unibest>HBuilderX

  • 1.非颠覆性创新:通过Vite插件实现"开发时优化",运行时仍严格遵循uni-app标准。
  • 2.效率与质量兼得:
    • 开发提速:自动化路由、布局复用、自动导入减少冗余代码。

    • 质量保障:强类型(TS)、原子化CSS(UnoCSS)、标准化工具链(ESLint)降低维护成本

致犹豫的开发者/小白​​:
若您曾因"陌生代码风格"放弃unibest,此刻可放下顾虑——它如同一位​​隐形的助手​​,在幕后默默优化你的开发体验,却绝不改变你熟悉的uni-app世界。从手动维护pages.json到文件即路由,不是技术栈的更迭,而是效率的必然进化