1.为何放弃又为何重探
为啥会有这篇文章,只要是之前简单的clone unibest代码,只是简单了解,并没有深入代码。在之前有个开发小程序的任务,时间紧,任务重,当时本来是想使用unibest作为模板开发,但是后面放弃了。放弃的主要原因是不够了解,对新框架的担忧,怕项目出现不可控的情况。
在初次接触unibest时,我曾因其代码结构与传统HBuilderX项目差异过大而放弃使用——尤其是面对<route>
块、自动路由生成等陌生概念时,担忧框架的不可控性会影响紧急的小程序项目。然而,经过深度代码剖析后,我发现:unibest的革新仅在于开发体验,而非运行机制。其底层仍严格遵循uniapp官方规范,只是通过Vite插件链实现了高效开发
2.路由定义
unibest约定式路由,是基于文件的路由系统。使用了vite-plugin-uni-pages插件
我当时看到这个代码,懵了。这是啥路由方式,跟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块代码
-
插件自动生成的路由配置信息,此处生成是插件自动行为
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
到文件即路由,不是技术栈的更迭,而是效率的必然进化