Navigator和导航栏之间的区别以及用法场景的分析

简介: 区别:   1.navigator是属于小程序组件中的,导航栏是属于小程序API中的   2.navigator组件是用在axml页面中跳转的导航,它有4种类型(见下表);导航栏API是用在js中实现页面跳转的   3.

区别:

   1.navigator是属于小程序组件中的,导航栏是属于小程序API中的

   2.navigator组件是用在axml页面中跳转的导航,它有4种类型(见下表);导航栏API是用在js中实现页面跳转的

   3.navigator是通过给属性open-type赋值的方法来实现其对应的跳转功能,导航栏是通过封装好的API中方法(如下表)实现其对应的功能

 

关联:

navigator的属性open-type对应导航栏API中的相应功能,参考该表理解  

      navigator(open-type)               导航栏
      navigate(默认值)        对应my.navigateTo的功能
      redirect        对应my.redirectTo的功能
      switchTab        对应my.switchTab的功能 
      navigateBack        对应my.navigateBack的功能

 

建议:

如果需要在跳转做其他逻辑处理建议使用导航栏API,不做的话建议使用navigator组件

 

用法场景:

1.my.navigateTo:

保留当前页面,跳转到应用内的某个指定页面,路径后可带参数,参数规则如下:路径与参数之间使用?分隔,参数键与参数值用=相连,不同参数必须用&分隔;如 path?key1=value1&key2=value2

使用 my.navigateBack 可以返回到原页面;页面最大深度为10,即可连续调用 10 次 navigateTo

示例代码:

my.navigateTo({
  url: 'new_page?count=100'
})

 

2.my.redirectTo:

关闭当前页面,跳转到应用内的某个指定页面,路径后可带参数,参数规则如下:路径与参数之间使用?分隔,参数键与参数值用=相连,不同参数必须用&分隔;如path?key1=value1&key2=value2

示例代码:

my.redirectTo({
  url: 'new_page?count=100'
})

 

3.my.switchTab:

跳转到指定 tabBar 页面,并关闭其他所有非 tabBar 页面;跳转的页面的路径需要在app.json的tabBar中声明的页面且路径后不能带参数

示例代码:

// app.json
{
  "tabBar": {
    "items": [{
      "pagePath": "home",
      "name": "首页"
    },{
      "pagePath": "user",
      "name": "用户"
    }]
  }
}
my.switchTab({
  url: '/home'
})

 

4.my.navigateBack:

关闭当前页面,返回上一级或多级页面。可通过 getCurrentPages 获取当前的页面栈信息,决定需要返回几层;返回的页面数,如果 delta 大于现有页面数,则返回到首页

示例代码:

// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,
// 而 redirectTo 方法则不会。见下方示例代码

// 此处是one页面
my.navigateTo({
  url: 'two?pageId=10000'
})

// 此处是two页面
my.navigateTo({
  url: 'one?pageId=99999'
})

// 在three页面内 navigateBack,将返回one页面
my.navigateBack({
  delta: 2
})

my.navigateTo 和 my.redirectTo 不允许跳转到 tabbar 页面;如果需要跳转到 tabbar 页面,请使用 my.switchTab

 

5.my.reLaunch:

关闭当前所有页面,跳转到应用内的某个指定页面。如果页面不为 tabbar 页面则路径后可以带参数。参数规则如下:路径与参数之间使用?分隔,参数键与参数值用=相连,不同参数必须用&分隔;如path?key1=value1&key2=value2

示例代码:

my.reLaunch({
  url: '/page/index'
})

 

6.my.setNavigationBar:

设置导航栏文字及样式,导航栏底部边框颜色,支持十六进制颜色值。若设置了 backgroundColor,则borderBottomColor 不会生效,默认会和 backgroundColor 颜色一样

示例代码:

my.setNavigationBar({
  title: '你好',
  backgroundColor: '#108ee9',
  success() {
    my.alert({
      content: '设置成功', 
    });
  },
  fail() {
    my.alert({
      content: '设置是失败',
    });
  },
});

 

7.my.showNavigationBarLoading:

显示导航栏 loading

示例代码:

my.showNavigationBarLoading();

 

8.my.hideNavigationBarLoading:

隐藏导航栏 loading

示例代码:

my.hideNavigationBarLoading();

 

 

目录
相关文章
|
小程序 前端开发 JavaScript
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
|
存储 关系型数据库 MySQL
mysql 8.0 的 建表 和八种 建表引擎实例
mysql 8.0 的 建表 和八种 建表引擎实例
234 0
|
中间件 API Go
使用Echo和Gin构建高性能Web服务的技术文档
本文档对比了Go语言中的两个流行Web框架——Echo和Gin。Echo是一个高性能、可扩展的框架,适合构建微服务和API,强调简洁API和并发性能。Gin基于net/http包,具有Martini风格API,以其快速路由和丰富社区支持闻名。在性能方面,Gin的路由性能出色,两者并发性能均强,内存占用低。文中还提供了使用Echo和Gin构建Web服务的代码示例,帮助开发者了解如何运用这两个框架。选择框架应考虑项目需求和个人喜好。
474 2
|
缓存 监控 API
抖音抖店 API 请求获取宝贝详情数据的调用频率限制如何调整?
抖音抖店API请求获取宝贝详情数据的调用频率受限,需遵循平台规则。开发者可通过提升账号等级、申请更高配额、优化业务逻辑(如缓存数据、异步处理、批量请求)及监控调整等方式来应对。
|
人工智能
又快又准,即插即用!清华8比特量化Attention,两倍加速于FlashAttention2,各端到端任务均不掉点!
清华大学研究团队提出SageAttention,一种高效的8比特量化Attention方法,旨在解决Transformer模型中Attention机制计算复杂度高的问题。SageAttention通过合理的量化策略,实现了计算效率的显著提升,同时保持了高精度。实验结果显示,SageAttention在多种任务中表现优异,为Transformer模型的推理加速提供了新的解决方案。
520 2
|
机器学习/深度学习 人工智能 数据可视化
大数据时代的数据可视化技术:趋势、挑战与未来展望
【7月更文挑战第22天】随着技术的不断进步和应用场景的不断拓展,数据可视化技术将在更多领域发挥更大的作用。未来,我们可以期待更加智能化、实时化、沉浸式和民主化的数据可视化解决方案的出现。同时,随着数据量的不断增加和数据类型的不断丰富,数据可视化技术也将面临更多的挑战和机遇。只有不断创新和优化技术才能满足日益增长的需求并推动数据可视化技术的持续发展。
1933 3
|
安全 Java
UUID太长怎么办?快来试试NanoId(Java版本)
UUID太长怎么办?快来试试NanoId(Java版本)
663 5
|
安全 Python
【Python】已完美解决:WARNING: The repository located at mirrors .aliyun.com is not a trusted or secure host
【Python】已完美解决:WARNING: The repository located at mirrors .aliyun.com is not a trusted or secure host
2255 1
|
存储 Java Maven
Java中文字转拼音工具类
有时,我们需要将中文汉字转为拼音存储,例如用于检索时,直接输入拼音或者首字母也能检索出我们想要的结果,这时我们便需要将汉字转拼音
503 0
|
开发工具 Android开发 开发者
Android 项目编译 Gradle 配置说明
Android 项目编译 Gradle 配置说明
647 0