Skip to content

uni 插件

引言

2025-08-28 更新, route-blockv3.12.0 已被 definePage 替代,一下内容已过时,仅供参考

有群友第一次看到 unibest 里面 vue 文件 route-block 这种写法,表示很奇怪,从来没见过!

vue
<route lang="json5">
{
  layout: 'demo',
  style: {
    navigationBarTitleText: '标题',
  },
}
</route>

<template>
  <view class="text-green-500">菲鸽,你好,我喜欢你!</view>
</template>

大改版,最新版使用 definePage 替代 route-block

  • 对象形式(静态配置):
js
definePage({
  style: {
    navigationBarTitleText: '首页',
  },
});
  • 函数形式(动态计算):
js
definePage(() => ({
  style: {
    navigationBarTitleText: computedTitle(),
  },
}));
  • 异步函数形式(异步数据获取):
js
definePage(async () => {
  const title = await fetchPageTitle();
  return {
    style: {
      navigationBarTitleText: title,
    },
  };
});

更多详情请看:definePage

vite-plugin-uni-pages

得益于 @uni-helper/vite-plugin-uni-pages,约定式路由(文件路由)的实现轻而易举。

src/pages 目录下的每个文件都代表着一个路由。要创建新页面,只需要在这个目录里新增 .vue 文件,插件会自动生成对应的 pages.json 文件。

route 代码块则可以配置页面相关信息,这些信息会自动同步到 pages.json,无需切换到 pages.json 进行配置。

温馨提示

pages.json 文件是自动生成的,请不要手动修改,全局的东西请在 pages.config.ts 里面配置,页面上的东西请在 vue 文件的 route 代码块配置,如下图。

vue
<!-- 使用 type="home" 属性设置首页,其他页面不需要设置,默认为page -->
<route lang="json5" type="home">
{
  style: {
    navigationStyle: 'custom',
    navigationBarTitleText: '首页',
  },
}
</route>
<template>
  <div>
    <h1>欢迎使用 unibest</h1>
    <h4>unibest 是最好的 uniapp 开发模板</h4>
  </div>
</template>
vue
<route lang="json5">
{
  style: {
    navigationBarTitleText: '关于',
  },
}
</route>
<template>
  <view>
    <view>通过 `/pages/about` 来访问这个页面</view>
  </view>
</template>

设置首页

通过在 route-block 里面配置 type="home" 即可,尽量保证一个项目 只有一个 这个配置,如果有多个,会按照字母顺序来排列,最终可能不是您想要的效果。

设置 pages 过滤和分包

  • 过滤:默认 src/pages 里面的 vue 文件都会生成一个页面,如果不需要生成页面可以对 vite.config.ts 中的 UniPages 进行 exclude 配置。

  • 分包:如果需要设置 分包 则可以通过 subPackages 进行配置,该配置项是个数组,可以配置多个 分包,注意分包的目录不能为 src/pages 里面的子目录。

ts
UniPages({
  exclude: ['**/components/**/**.*'],
  subPackages: ['src/pages-sub'], // 是个数组,可以配置多个,但不能为 `src/pages` 里面的子目录
});

vite-plugin-uni-layouts

得益于 @uni-helper/vite-plugin-uni-layouts,你可以轻松地切换不同的布局。

src/layouts 文件夹下的 vue 文件都会自动生成一个布局,默认的布局文件名为 default ,路径 src/layouts/default.vue

如果需要修改使用的布局,可以通过 vue 文件内 route 代码块指定需要的布局,如下示例使用 demo 布局。

vue
<route lang="json5">
{
  layout: 'demo',
  style: {
    navigationBarTitleText: '关于',
  },
}
</route>
vue
<template>
  <view>
    <!-- 这里可以写通用的布局,比如导航栏,tabbar等 -->
    <!-- slot里面装的就是子页面的内容 -->
    <slot />
  </view>
</template>

vite-plugin-uni-manifest

得益于 @uni-helper/vite-plugin-uni-manifest,你可以使用 TypeScript 来编写 manifest.json

manifest.json 文件是自动生成的,请不要手动修改,需要配置的内容请在 manifest.config.ts 里面配置。

总结

本文介绍了 unibest 引入的几个重要的 uni插件

如果还想了解更多信息,可以去 uni-helper github 仓库 看看。

Released under the MIT License.