Skip to content

使用 uni-simple-router 与不使用的区别:功能与效果对比

uni-simple-router 是一个专门为 uni-app 设计的路由管理插件,它提供了比默认路由管理更丰富的功能和更高的灵活性。下面是使用 uni-simple-router 与不使用 uni-simple-router 的功能与效果对比:

1. 基本路由功能对比

1. 默认路由管理

  1. 路由配置:使用 uni-app 的默认路由配置方式(通过 pages.json 文件)来定义路由。每个页面必须在 pages.json 中声明,且不支持动态路由或嵌套路由。
  2. 路由跳转:使用 uni.navigateTo()、uni.redirectTo()、uni.switchTab() 等 API 进行路由跳转。API 比较基础,不支持动态参数解析或更复杂的路由匹配。
  3. 嵌套路由:默认路由不支持嵌套路由,即页面层级结构较为固定,无法灵活地管理子页面和父页面之间的关系。

2. 使用 uni-simple-router

  1. 路由配置:通过 uni-simple-router 提供的路由配置方式,可以支持嵌套路由、动态路由等更复杂的配置。配置文件更为灵活,支持页面的层级结构和命名视图。
  2. 路由跳转:提供了更强大的路由跳转功能,比如通过路由名称跳转、传递动态参数等。支持更多的跳转方式,例如 router.push() 和 router.replace() 等。
  3. 嵌套路由:支持嵌套路由的配置,使得可以定义父子页面的层级结构。支持动态加载子页面和根据路由状态更新视图。

2. 功能与效果对比

1. 动态路由与参数

  1. 默认路由:不支持动态路由参数,只能通过页面路径固定跳转。动态参数需要通过页面间传递的方式处理。
  2. uni-simple-router:支持动态路由参数,可以在路由定义中使用参数占位符,并在页面中获取这些参数进行处理。例如,支持 path: '/user/:id' 的配置。

2. 路由守卫

  1. 默认路由:不提供路由守卫功能,无法在路由跳转前进行拦截或验证。
  2. uni-simple-router:支持路由守卫,可以在路由跳转前进行权限检查、数据加载等操作。可以通过 beforeEach、afterEach 钩子函数实现。

3. 多层级页面管理

  1. 默认路由:页面管理较为简单,不支持多层级嵌套页面的展示。
  2. uni-simple-router:支持多层级页面管理,可以在主页面中展示子页面,并且通过嵌套路由的方式进行管理。

4. 命名视图

  1. 默认路由:不支持命名视图功能,所有页面视图通过一个 <view> 标签展示。
  2. uni-simple-router:支持命名视图,可以在不同的 <router-view> 中展示不同的视图,实现更灵活的页面布局。

5. 路由配置文件

  1. 默认路由:路由配置在 pages.json 文件中,配置项固定,且支持的功能较为基础。
  2. uni-simple-router:路由配置可以放在 JavaScript 文件中,支持更多的配置选项和灵活性,可以动态地进行路由配置。

3.示例对比

1. 默认路由配置(pages.json)

js
{
  "pages": [
    {
      "path": "pages/home/home",
      "style": {
        "navigationBarTitleText": "Home"
      }
    },
    {
      "path": "pages/profile/profile",
      "style": {
        "navigationBarTitleText": "Profile"
      }
    }
  ]
}

2.uni-simple-router 配置

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

const router = createRouter({
  routes: [
    {
      path: '/home',
      name: 'Home',
      component: __dynamicImportComponent__('@/pages/Home.vue',{pageType:`top`}),
      children: [
        {
          path: 'details/:id',
          name: 'Details',
          component: __dynamicImportComponent__('@/pages/Home/Details.vue'),
        },
      ],
    },
    {
      path: '/profile',
      name: 'Profile',
      component: __dynamicImportComponent__('@/pages/Profile.vue',{pageType:`top`}),
    },
  ],
})

export default router

6. 总结

  1. 默认路由管理:适合简单的页面导航需求,功能基础,但配置相对简单。
  2. uni-simple-router:适合复杂的应用需求,支持更丰富的路由功能和配置选项,如嵌套路由、动态参数、路由守卫等。

选择使用 uni-simple-router 还是默认路由管理,取决于你的项目复杂程度和具体需求。如果你的应用需要更复杂的路由管理和功能,uni-simple-router 是一个更好的选择。如果需求较为简单,默认路由管理也足够使用。

使用 uni-simple-router 与不使用的区别:功能与效果对比 has loaded