# DynamicsForumsCases **Repository Path**: ldfwz/dynamics-forums-cases ## Basic Information - **Project Name**: DynamicsForumsCases - **Description**: 鸿蒙论坛案例 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-07-11 - **Last Updated**: 2024-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DynamicsForumsCases #### 介绍 鸿蒙论坛案例-动态路由版 #### 使用说明 **无插件版本** 1. 在feature中新建一个Static的模块 2. 在oh-package.json5文件中导入路由模块 ```json5 { // ~~~ "dependencies": { "@ohos/dynamicsRouter": "file:../../common/router_model" } } ``` 3. 在src目录下新建一个view目录,里面写需要导出的组件,加上装饰器 @AppRouter({ name: '模块名/组件名' }) 4. 在ets目录下新建一个generated目录,里面新建一个RouterBuilder.ets文件 ```typescript import { DynamicsRouter, AppRouterInfo } from '@ohos/dynamicsRouter/Index' import { '需要导出的组件' } from '导出组件的路径' @Builder function 导出的组件名Builder() { '需要导出的组件' } export function 导出的组件名Register(routerInfo: AppRouterInfo) { DynamicsRouter.registerAppRouterPage(routerInfo, wrapBuilder('导出的组件名Builder')); } ``` 5. 在resources目录下,新建一个rawfile目录,在里面新建一个routerMap目录,在该目录下新建一个模块名的json文件 ```json { "routerMap": [ { "name": "模块名/导出的组件名", "pageModule": "模块名", "pageSourceFile": "src/main/ets/generated/RouterBuilder.ets", "registerFunction": "导出的组件名Register" } ] } ``` 6. 在模块级下的Index.ets文件中导出:export * from './src/main/ets/generated/RouterBuilder' **插件版本** 前提:要有插件,插件在根目录下的libs目录中,还需要在根目录下的hvigor目录下的hvigor-config.json5中添加配置 ```json5 { // ~~~ "dependencies": { "@app/ets-generator": "file:../libs/autobuildrouter-1.0.1.tgz" }, // ~~~ } ``` 1. 在feature中新建一个Static的模块 2. 在oh-package.json5文件中导入路由模块 插件版这里是固定的@ohos/dynamicsrouter ```json5 { // ~~~ "dependencies": { "@ohos/dynamicsrouter": "file:../../common/router_model" } } ``` 3. 在src目录下新建一个view目录,里面写需要导出的组件,加上装饰器 @AppRouter({ name: '模块名/组件名' }) 4. 在模块级的hvigorfile.ts文件中添加 ```typescript import { harTasks } from '@ohos/hvigor-ohos-plugin'; import { PluginConfig, etsGeneratorPlugin } from '@app/ets-generator'; // 配置路由信息 const config: PluginConfig = { // 扫描文件的路径 scanFiles: ["有@AooRouter装饰器的页面"] } export default { system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ plugins: [etsGeneratorPlugin(config)] /* Custom plugin to extend the functionality of Hvigor. */ } ```