介绍

封装 https://uniapp.dcloud.io/api/router

  • 对uni路由的一个封装,增加功能,简单写代码。

    目录

    router

  • router 跳转路由

  • router.back 返回
  • router.goHome 回到首页
  • router.getOption 获取参数
  • router.pageInfo 页面信息

    详细

    router

    跳转路由可以完成

  • 跳转路由

  • 后退

    ```javascript this.$router(‘pages/user/index’,{ // 复杂数据跳转 id:10, info:{ name:’张三’, age:19 } }).then(res=>{ console.log(‘跳转成功’) })

    this.$router(‘pages/user/index?id=19&type=0&name=张飞’); // 简单数据跳转

this.$router(1,{name:10},’navigateBack’) // 后退1页

  1. <a name="tnGt3"></a>
  2. ### 参数
  3. | 参数 | 类型 | 是否必填 | 说明 |
  4. | --- | --- | --- | --- |
  5. | url | String/Number | Y | `String` :跳转地址 可以使用 `?&` 携带参数<br />`Number` :在 `mode` 为 `navigateBack` 时表示后退多少页 |
  6. | data | Object | N | 携带数据,(在返回时依然可以携带参数,如果数据有同名则会覆盖 |
  7. | mode | String | N | 跳转方式 ` ['navigateTo','redirectTo','reLaunch','navigateBack']` 之一 |
  8. | config | Object | N | 其他配置详情:[https://uniapp.dcloud.io/api/router](https://uniapp.dcloud.io/api/router) |
  9. <a name="IOuEQ"></a>
  10. ## router.goHome
  11. 返回首页
  12. <a name="CrREH"></a>
  13. ### 例
  14. ```javascript
  15. this.$router.goHome() // 返回首页
  16. this.$router.goHome({name:10}) // 返回首页并携带参数

参数

参数 类型 是否必填 说明
data Object N 传递的参数

router.back

  1. this.$router.back(2,{name:'张三'}) // 后退两页并传入参数

参数

参数 类型 是否必填 说明
delta Number N 后退几页( 默认 1)
data Object N 携带参数
config Object N 其他配置 https://uniapp.dcloud.io/api/router?id=navigateback

router.getOption

获取指定页面传入参数 (包括 通过 router 传递参数以及从 onLoad 传递的参数,如果有同名 onLoad 会覆盖使用 router 传递的参数)

  1. console.log('传入参数',this.$router.getOption()) // 获取当前页面参数
  2. console.log('首页参数',this.$router.getOption('pages/index/index')) // 获取指定页面参数

参数

参数 类型 是否必填 说明
url String Y String :页面地址

router.getPageInfo

指定页面的信息 和 路由信息

返回值

  1. {
  2. length, // 当前有多少个路由
  3. page, // 传入url
  4. nowPage, // 当前url
  5. isTabBar,// 传入url是不是 底部菜单
  6. isHome, // 传入url是不是 首页
  7. urlList, // 当前所有路由url
  8. optionsList, // 所有路由 onLoad 传入参数
  9. options, // 传入url 通过 onLoad 方法传入的参
  10. }

其他可配置项

因为生成小程序太阳码有参数限制,所以增加解参函数。可在文件中配置 scene2Data 方法

scene2Data

  1. function scene2Data(scene) {
  2. scene = decodeURIComponent(scene); // 解码
  3. scene = scene.split(','); // 分割
  4. if (scene.length === 0) return {};
  5. switch (scene[0]) {
  6. // 可以扩展,以下为例
  7. case '1': // ( type,用户id)
  8. return {
  9. SCENEDATA: {
  10. uid: scene[1], // 用户id
  11. },
  12. };
  13. case '2':
  14. return {
  15. SCENEDATA: {
  16. // (type,活动id)
  17. id: scene[1],
  18. },
  19. };
  20. default:
  21. return {};
  22. }
  23. }

参数

参数 类型 是否必填 说明
scene String Y 小程序的参数字符串默认使用 , 拼接 第一个参用来区分类型。
例: scene='1,uid,cid