ArkUI 页面路由

页面路由是指在应用程序中实现不同页面之间的跳转和数据传递。

1. 路由模式

在这里插入图片描述

  • 页面栈的最大容量上限为32个页面,使用router.clear()方法可以清空页面栈,释放内存。
  • Router有两种页面跳转模式,分别是:
    • router.pushUrl():目标页面不会替换当前页,而是压入页面栈,因此可以使用router.back()返回当前页
    • router.replaceUrl():目标页替换当前页,当前也会被销毁并释放资源,无法返回当前页。
  • Router有两种页面实例模式,分别是:
    • Standard:标准实例模式,每次跳转都会新建一个目标页并压入栈顶,默认就是这种模式。
    • Single:单实例模式,如果目标页已经在栈中,则离栈顶最近的同url页面会被移动到栈顶并重新加载。

2. 使用路由

1.导入HarmonyOS提供的Router模块:

import router from '@ohos.router'

2.使用router的api实现跳转、返回等操作:

// 跳转到指定路径,并传递参数
router.pushUrl(
  {
    url: 'pages/ImagePage',
    params: {id: 1}
  },
  router.RouterMode.Single,
  err => {   // 异常响应回调函数
    if(err) {
      console.log(`路由失败, errCode: ${err.code}, errMsg: ${err.message}`)
    }
  }
)
  • 参数1: RouterOptions
    • url:目标页面路径
    • params:参数(可选)
  • 参数2:页面模式,RouterMode枚举
  • 参数3:异常响应回调函数,错误码:
    • 100001:内部错误,可能是渲染失败
    • 100002:路由地址错误
    • 100003:路由栈中页面超过32

3.目标页面获取参数:

// 获取传递过来的参数,使用any类型接收
params: any = router.getParams()
// 获取某一个具体的参数
let courseName = router.getParams()['courseName'] as string

// 返回上一页
router.back()

// 返回到指定页面,并携带参数
router.back(
  {
    url: 'pages/Index',
    params: {id: 10}
  }
)

页面路径需要在resources.base.profile.main_pages.json中进行配置。

{
  "src": [
    "pages/Index",
    "pages/ImagePage"
  ]
}

3. 路由应用

3.1 在页面跳转前弹出alert提示

// 返回前的警告提示,点取消则不返回
router.showAlertBeforeBackPage({
  message: '确定要返回吗?'
})

// 返回页面
router.back()
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue多页面路由配置是指在Vue项目中同时多个页面路由。通常情况下,Vue项目是单页面应用(SPA),只有一个入文件和一个路由配置文件。但是有时候我们需要在同一个项目中同时管理多个独立的页面,这时就需要进行多页面路由配置。 在Vue中,可以通过vue-router插件来实现多页面路由配置。下面是一个简单的示例: 1. 首先,在Vue项目的src目录下创建一个pages文件夹,用于存放多个页面的组件。 2. 在src目录下创建一个router文件夹,用于存放路由配置文件。 3. 在router文件夹下创建一个index.js文件,用于配置路由。 4. 在index.js文件中,引入Vue和vue-router,并创建一个新的VueRouter实例。 ```javascript import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', routes: [ { path: '/page1', name: 'Page1', component: () => import('@/pages/Page1.vue') }, { path: '/page2', name: 'Page2', component: () => import('@/pages/Page2.vue') }, // 其他页面路由配置 ] }) export default router ``` 5. 在main.js文件中,引入router并将其挂载到Vue实例上。 ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' new Vue({ router, render: h => h(App) }).$mount('#app') ``` 在上面的示例中,我们创建了两个页面,分别是Page1和Page2。在路由配置中,我们使用了VueRouter的history模式,并配置了两个路由,分别对应不同的页面组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值