您现在的位置是:首页 > 技术教程 正文

uni-app中Navigator组件的用法详解

admin 阅读: 2024-04-01
后台-插件-广告管理-内容页头部广告(手机)

uni-app中Navigator组件的用法详解

文章目录

  • 引言
    • 1.基本用法
      • 1.1 uni路由API说明
      • 1.2 五种种常见的跳转方式
        • 1.2.1 uni.navigateTo(OBJECT)
        • 1.2.2 uni.redirectTo(OBJECT)
        • 1.2.3 uni.reLaunch(OBJECT)
        • 1.2.4 uni.switchTab(OBJECT)
        • 1.2.5 uni.navigateBack(OBJECT)
      • 1.3 Navigator组件的基本用法
    • 2.传参方式
      • 2.1 Query参数传递
      • 2.2 组件间传值
    • 3.总结

引言

在移动应用开发中,页面跳转是一项基础而重要的功能。在uni-app中,我们可以使用Navigator组件来实现页面间的跳转。本文将详细介绍uni-app中Navigator组件的用法,包括基本用法、传参方式以及注意事项。

1.基本用法

1.1 navigator API 介绍

navigator用于页面跳转。
该组件类似HTML中的a标签,但只能跳转本地页面。目标页面必须在pages.json中册。
该组件的功能有API方式,另见:https://uniapp.dcloud.io/api/router?id=navigateto

1.1 uni路由API说明

  • !
    在这里插入图片描述
    (图片来源于官方文档)
  • 注意
  • 跳转tabbar页面,必须设置open-type=“switchTab”
  • navigator-hover 默认为 {background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}, 的子节点背景色应为透明色。
  • navigator-open-type属性 如果使用对应的值,则对应值的功能会高于对应跳转路径。
  • app-nvue 平台只有纯nvue项目(render为native)才支持 。非render为native的情况下,nvue暂不支持navigator组件,请使用API跳转。
  • app下退出应用,Android平台可以使用plus.runtime.quit。iOS没有退出应用的概念。
  • uLink组件是navigator组件的增强版,样式上自带下划线,功能上支持打开在线网页、其他App的schema、mailto发邮件、tel打电话。
  • Vue3 项目因 SSR 需要,H5 端会在外层嵌套 a 标签。

1.2 五种种常见的跳转方式

1.2.1 uni.navigateTo(OBJECT)

保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。

1.2.2 uni.redirectTo(OBJECT)

关闭当前页面,跳转到应用内的某个页面。

1.2.3 uni.reLaunch(OBJECT)

关闭所有页面,打开到应用内的某个页面。

1.2.4 uni.switchTab(OBJECT)

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。

1.2.5 uni.navigateBack(OBJECT)

关闭当前页面,返回上一页面或多级页面。

1.3 Navigator组件的基本用法

  1. 在需要跳转的页面的.vue文件中,使用Navigator组件的标签:
<navigator url="/pages/index/index"></navigator>
  • 1

在上述代码中,我们使用url属性设置跳转目标页面的路径,例如上述代码中的跳转目标页面是/pages/index/index。

  1. 在源页面的.js文件中,使用以下代码来设置Navigator组件的跳转事件:
onNavigatorTap() { uni.navigateTo({ url: '/pages/index/index' }) }
  • 1
  • 2
  • 3
  • 4
  • 5

在上述代码中,我们使用uni.navigateTo()方法实现跳转操作,其中url属性用于设置跳转目标页面的路径。

2.传参方式

在实际开发中,我们通常需要将一些参数传递给目标页面。Navigator组件提供了多种传参方式:

2.1 Query参数传递

  1. 在源页面中,使用以下代码设置Navigator组件的url属性
<navigator url="/pages/index/index?name=hhs&age=18"></navigator>
  • 1
  • 2
  1. 在目标页面的.js文件中,可以使用以下代码获取Query参数:
onLoad(options) { console.log(options.name) // 输出hhs console.log(options.age) // 输出18 }
  • 1
  • 2
  • 3
  • 4
  • 5

2.2 组件间传值

  1. 在源页面中,可以使用以下代码设置Navigator组件的事件:
onNavigatorTap() { uni.navigateTo({ url: '/pages/index/index', success: function(res) { res.eventChannel.emit('customEvent', { name: 'Tom', age: 18 }) } }) }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 在目标页面的.js文件中,可以使用以下代码获取传递的参数:
onLoad(options) { const eventChannel = this.getOpenerEventChannel() eventChannel.on('customEvent', (data) => { console.log(data.name) // 输出hhs console.log(data.age) // 输出18 }) }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.总结

简单了解uni-app中Navigator的基本用法

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索