uni
全局挂载
插件通过vite自动生成了 uni ext api 的封装插件来实现了直接挂载 uni
对象。具体操作如下:
vite.config.ts
修改如下:
typescript
import { defineConfig } from 'vite';
import uni from "@dcloudio/vite-plugin-uni";
import generateUniext from './uni_modules/kux-router/vite/vite-plugin-generate-uniext'
import autopages from './uni_modules/kux-autopages';
import kuxgen from './uni_modules/kux-router/vite/vite-plugin-kux-gen';
export default defineConfig({
plugins: [
generateUniext,
uni(),
autopages({
pagesJsonMappingFile: 'router/pages.uts',
}),
kuxgen({
pagesJsonMappingFile: 'router/pages.uts',
routerFile: 'router/router.uts'
})
],
})
- 然后项目中即可直接使用:
uni.useKuxRouter
来替代原来的手动导入useRouter
。uni.useKuxRoute
来替代原来的手动导入useRoute
。uni.createKuxRouter
来替代原来的手动导入createRouter
。
注意
v1.1.5
及以上版本支持。- 上面的
generateUniext
为新增的导入模块。模块初始化时会在uni_modules
目录下面生成uni-kuxrouter
插件,该插件第一次生成时需要编译两次才能正常使用。该插件存在时按照正常的编译一次即可。 - 介意上面第一次需要编译两次的谨慎使用
uni
全局挂载方式。 v1.2.2
及以上版本修复了需要编译两次的问题。
小程序环境使用事项 v1.2.4+
uni编译器 4.35
及以上版本开始支持小程序,main.uts
写法如下:
ts
import App from './App.uvue'
import { createSSRApp } from 'vue'
import { createRouter } from '@/uni_modules/kux-router';
import { RouterOptions, UseAddInterceptorOptions } from '@/uni_modules/kux-router';
import routes from './router2/router';
// #ifdef MP
import { createKuxRouter, useKuxRouter, useKuxRoute } from '@/uni_modules/uni-kuxrouter';
// #endif
export function createApp() {
const app = createSSRApp(App)
// #ifdef MP
uni.createKuxRouter = createKuxRouter;
uni.useKuxRouter = useKuxRouter;
uni.useKuxRoute = useKuxRoute;
// #endif
const router = uni.createKuxRouter({
routes: routes,
useAddInterceptor: {
switchTab: true,
} as UseAddInterceptorOptions
} as RouterOptions)
app.provide('router', router);
return {
app
}
}