Skip to content

安装

扫码登录后授权下载

自V3版本开始,我们仅提供收费版本的uni-simple-router。如果你只是想进行简单尝试,可以下载我们的开源版。在Github上可以找到完整的源代码。

如果你已经获得授权并登录了,可以直接点击下方提示栏下载插件包。另外,你还可以在导航头像和名称位置点击,进入个人中心,在那里也可以下载插件包。

如果你还未获得授权,可以参考此处获取授权。

下载完成并解压后,你将会获得如下目录结构:

uni-simple-router
├─ version.json    // 详细的版本信息
├─ appletRouterView.vue    // 用于在小程序中使用的 simple-router-view
├─ compiler.d.ts  // 编译器 - 适合TS智能提示的.d.ts文件
├─ compiler.js // 编译器 - 完整插件文件
├─ compiler.js.LICENSE.txt  // 编译器 - 许可证文件 - 【新版可能删除】
├─ index.d.ts   // 运行时 - 适合TS智能提示的.d.ts文件
├─ index.mjs    // 运行时 - 完整的运行时uni-simple-router文件
└ index.mjs.LICENSE.txt // 运行时 - 许可证文件 - 【新版可能删除】

版本要求和先决条件

先决条件

  • 安装 Node.js 16.0 或更高版本
  • 如果你喜欢使用 IDE 创建项目,请确保 HBuilderX 版本 在 3.7.11.20230427 或更高版本
  • 如果你喜欢使用 CLI 创建项目,请确保 官方依赖 版本 在 3.0.0-alpha-3070720230316001 或更高版本
  • 当您准备将插件包与uni-app工程集成时,请确保您已经获得授权并成功下载插件包。这样可以确保您有合法的许可证,并且可以顺利进行集成和使用插件的功能。

第一步将插件包放入工程

在开始之前,请确保您已经阅读 版本要求和先决条件

如果您是通过脚手架初始化的项目,只需将插件包解压后直接放入src目录下的任意文件夹即可。而如果您是通过HBuilderX编辑器初始化的项目,则直接将插件包放入项目根目录下的任意文件夹中即可。

如果您的项目中没有vite.config.js文件,您需要手动在项目根目录下创建一个,并写入以下默认配置。这样可以确保项目正常工作。

js
// vite.config.js
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [uni()],
});

第二步配置 vite.config.js

在开始之前,请确保您已经按照第一步的配置要求进行了必要的设置。

js
// vite.config.js
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import vitePluginUniRouter from './src/uni-simple-router/compiler'  

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vitePluginUniRouter({ 
      pluginPath: `./uni-simple-router`,  
    }), 
    uni()
  ],
});

以上代码是用于将编译器与 vite 进行集成的配置。在代码中,pluginPath 属性用于指定插件包的位置,你可以设置绝对路径或相对路径来指定插件包的位置。

陷阱提示

在配置编译器时,请确保将其放置在 plugins 数组的第一位,以确保它按预期工作。

第三步配置运行时

在开始之前,请确保您已按照第二步的配置要求进行了必要的设置。此外,请停止正在配置的项目的运行,在配置完成后再重新编译。

新建并写入 router.js

js
// router.js
import {
    createRouter,
    __dynamicImportComponent__
} from '@/uni-simple-router'

const router = createRouter({
	platform: process.env.VUE_APP_PLATFORM,
    routes:[{
        path:`/`,
        component:__dynamicImportComponent__(`@/pages/index.vue`,{
            pageType:`top`  
        })
    }]
})

export default router

将 router 在 main.js 中导出

js
// main.js
import { createSSRApp } from "vue";
import App from "./App.vue";
import router from '@/router' 

export function createApp() {
  const app = createSSRApp(App);
  return {
    app,
    router  
  };
}

去除 pages.json 中的 pages 及 subpackages 字段

js
// pages.json
{
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "uni-app",
    "navigationBarBackgroundColor": "#F8F8F8",
    "backgroundColor": "#F8F8F8"
  }
}

为了减少该栏目的复杂度,我们省略了一些无关紧要的代码,请确保已经按照糟色部分的代码进行了配置。现在你会注意到 pages.json 与传统的 uni-app 项目有所不同,它省略了 pages 和 subpackages 的配置。这得益于 uni-simple-router 编译器,它让你专注于业务逻辑,无需每次都在庞大而臃肿的 pages.json 文件中查找或添加页面。编译器会根据你在路由表中的配置生成真正的页面,允许你在构建时或运行时创建复杂的嵌套页面体系。截至目前安装已经完成,你可以重新编译并查看你的应用。你也可以查下下方最终的项目结构。

陷阱提示

在新版的 uni-app 中,由于官方加入了一个编译前的逻辑判断,要求 pages.json 中至少要有一项 pages 路径配置,否则热编译时会在前端抛出警告。该警告在 h5 上表现比较明显,当出现这个问题警告时,你可以通过刷新浏览器来解除警告。如果你想忽略这个警告,你可以在 pages.json 中随意指定一个页面路径,这个路径可以是你项目中的任何页面地址,该页面配置不会被最终打包,而是仅用于跳过这个警告的作用。

js
// pages.json
{
  "pages": [{
    "path": "pages/index/index"
  }],
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "uni-app",
    "navigationBarBackgroundColor": "#F8F8F8",
    "backgroundColor": "#F8F8F8"
  }
}

记住这个不是必须的,只是给出一个忽略警告的方式。

集成后的项目结构

CLI 初始化的项目

js
E:\codeTest\playground
├─.gitignore
├─index.html
├─package.json
├─tsconfig.json
├─vite.config.ts  
├─src
|  ├─App.vue
|  ├─env.d.ts
|  ├─main.ts    
|  ├─manifest.json
|  ├─pages.json   
|  ├─shime-uni.d.ts
|  ├─uni.scss
|  ├─uni-simple-router    
|  |         ├─appletRouterView.vue  
|  |         ├─version.json  
|  |         ├─compiler.d.ts  
|  |         ├─compiler.js  
|  |         ├─compiler.js.LICENSE.txt  - 【新版可能删除】
|  |         ├─index.d.ts 
|  |         ├─index.mjs 
|  |         └index.mjs.LICENSE.txt - 【新版可能删除】
|  ├─static
|  |   └logo.png
|  ├─router   
|  |   └index.ts  
|  ├─pages
|  |   └index.vue

IDE 初始化的项目

js
E:\codeTest\playground
├─App.vue
├─index.html
├─main.js 
├─manifest.json
├─package-lock.json
├─package.json
├─pages.json  
├─uni.promisify.adaptor.js
├─uni.scss
├─vite.config.js  
├─uni-simple-router 
|         ├─appletRouterView.vue  
|         ├─version.json  
|         ├─compiler.d.ts  
|         ├─compiler.js  
|         ├─compiler.js.LICENSE.txt  - 【新版可能删除】
|         ├─index.d.ts 
|         ├─index.mjs 
|         └index.mjs.LICENSE.txt - 【新版可能删除】
├─static
|   └logo.png
├─router  
|   └index.js 
├─pages
|   └index.vue
安装 has loaded