微信小程序实现页面导航的方法详解

目录
  • 一.页面导航
  • 二.声明式导航
    • 1.导航到tabBar页面
    • 2.导航到非tabBar页面
    • 3.后退导航
  • 三.编程式导航
    • 1.导航到tabBar页面
    • 2.导航到非tabBar页面
    • 3.后退导航
  • 四.导航传参
    • 1.声明式导航传参
    • 2.编程式导航传参
    • 3.在onLoad中接收导航传参
  • 五.总结

一.页面导航

1.什么是页面导航

页面导航是指页面之间的相互跳转。

2.页面导航的两种实现方式

页面导航有两种实现方式:

声明式导航

方法:在页面声明一个navigator组件,通过点击这个组件来实现页面的跳转。

编程式导航

方法:调用小程序的导航API实现页面的跳转。

二.声明式导航

1.导航到tabBar页面

tab页面指被配置为tabBar的页面,在使用指定navigator组件跳转到指定页面时,必需要指定url属性和open-style属性,其中:

url表示要跳转的页面地址,必须以/开头

open-strle表示跳转的方式,这里必须是switchTab

<navigator url="/pages/message/message" open-type="switchTab">跳转到消息页面</navigator>

2.导航到非tabBar页面

非tabBar页面指的是没有被配置为tabBar的页面。在使用naxigator组件跳转到非tabBar页面时,也需要指定url属性和open-type属性,其中:

url表示要跳转的页面地址,必须以/开头

open-style表示跳转的方式,这里必须是navigate,此时这个属性可以省略

<navigator url="/pages/info/info" open-type="navigate">跳转到info页面</navigator>

3.后退导航

如果要后退到上一页面或多级页面,则需要指定 open-type 属性和 delta 属性,其中:

open-type 的值必须是 navigateBack,表示要进行后退导航

delta 的值必须是数字,表示要后退的层级,默认为1

<navigator open-type="navigateBack" delta="1">回退上一个页面</navigator>

三.编程式导航

1.导航到tabBar页面

调用 wx.switchTab(Object object) 方法,可以跳转到 tabBar 页面。其中 Object 参数对象的属性列表在官方文档解释如下:

wxml代码:

<button bindtap="gotoMessage" type="primary">跳转到消息页面</button>

js代码:

  gotoMessage(){
  	wx.switchTab({
  		url: '/pages/message/message',
})
  },

2.导航到非tabBar页面

调用wx.navigateTo(Object object) 方法,可以跳转到非 tabBar 的页面。其中 Object 参数对象的属性列表在官方文档解释如下:

wxml\代码:

<button bindtap="gotoinfo" type="primary">跳转到info页面</button>

js代码:

  gotoinfo(){
    wx.navigateTo({
      url: '/pages/info/info',
    })
  },

3.后退导航

调用 wx.navigateBack(Object object) 方法,可以返回上一页面或多级页面。其中 Object 参数对象可选的属性列表在官方文档解释如下:

wxml代码:

<button bindtap="goBack">回退上一个页面</button>

js代码:

  goBack(){
    wx.navigateBack({
      delta: 1,
    })
  },

四.导航传参

1.声明式导航传参

navigator 组件的 url 属性用来指定将要跳转到的页面的路径。同时,路径的后面还可以携带参数:

参数与路径之间使用 ? 分隔

参数键与参数值用 = 相连

不同参数用 & 分隔

<navigator url="/pages/info/info?name=zs&age=20" open-type="navigate">跳转到info页面</navigator>

2.编程式导航传参

调用 wx.navigateTo(Object object) 方法跳转页面时,也可以携带参数。

  gotoinfo(){
    wx.navigateTo({
      url: '/pages/info/info?name=ls&age=22',
    })
  },

3.在onLoad中接收导航传参

通过声明式导航传参或编程式导航传参所携带的参数,可以直接在 onLoad 事件中直接获取到。

  data: {
    //导航传递过来的参数对象:定义空的对象数组
	quary:{}
  },

  onLoad(options) {
	console.log(options)
	this.setData({
  	quary:options
})

五.总结

本节学会了页面导航的两种方式和两种方式导航到tabBar页面和非tabBar页面的方式,以及导航传参的方法。

以上就是微信小程序实现页面导航的方法详解的详细内容,更多关于小程序页面导航的资料请关注我们其它相关文章!

(0)

相关推荐

  • 微信小程序使用自定义组件导航实现当前页面高亮

    最近开发小程序,需要做一个导航,导航可以通过template写出来,但是这个项目需要在导航中处理一些逻辑,做成组件更方便些. 首先新建header文件夹,里面新建对应的js.json.wxml.wxss文件. <!-- 公共头部组件 --> <view class='headers'> <navigator open-type="redirectTo" class='logo' url="../index/index" hover-cl

  • 微信小程序实现页面浮动导航

    一.前言 做复杂的小程序就与web页面的区别原来越小了,一些web页面的功能会被要求添加到微信小程序页面中. 二.功能 页面在滑动的时候顶部页面导航跟随滑动,当点击导航中的任意一项时返回页面顶部. 三.实现 wxml代码: <view class='container'> <view class='navigation {{pageVariable.isFloat == true ? "float-navigation":""}}'> <

  • 微信小程序实现点击导航条切换页面

    本文实例为大家分享了微信小程序实现点击导航条切换页面的具体代码,供大家参考,具体内容如下 我录制了个gif如下,黄色部分是不可以滑动的,蓝色部分可以滑动. 代码解说: 首先我在js自定义了navState参数用于判断导航的当前状态, 定义了data-index用于js中动态修改导航的当前状态, nav-switch-style为选择导航条时的样式, 不可滑动视图切换很简单,用wx:if判断状态显示相应页就好了, 滑动页视图切换要用到swiper和 swiper-item, 用bindchang方

  • 小程序自定义单页面、全局导航栏的实现代码

    需求 产品说小程序返回到首页不太方便,想添加返回首页按钮,UI说导航栏能不能设置背景图片,因为那样设计挺好看的. 需求分析并制定方案 这产品和UI都提需求了,咱也不能反驳哈,所以开始调研,分析可行性方案:1.可以添加悬浮按钮.2.自定义导航栏. 添加悬浮按钮,是看起来是比较简单哈,但是感觉不太优雅,会占据页面的空间,体验也不太好.所以想了下第二种方案,自定义导航栏既可以实现产品的需求还可以满足UI的设计美感,在顶部空白处加上返回首页的按钮,这样和返回按钮还对称(最终如图所示,顶部导航栏是个背景图

  • 微信小程序实现页面导航的方法详解

    目录 一.页面导航 二.声明式导航 1.导航到tabBar页面 2.导航到非tabBar页面 3.后退导航 三.编程式导航 1.导航到tabBar页面 2.导航到非tabBar页面 3.后退导航 四.导航传参 1.声明式导航传参 2.编程式导航传参 3.在onLoad中接收导航传参 五.总结 一.页面导航 1.什么是页面导航 页面导航是指页面之间的相互跳转. 2.页面导航的两种实现方式 页面导航有两种实现方式: 声明式导航 方法:在页面声明一个navigator组件,通过点击这个组件来实现页面的

  • 微信小程序scroll-view隐藏滚动条的方法详解

    效果图: 1.scroll-view 中的需要滑动的元素不可以用 float 浮动使其一行展示: 2.包裹scroll-view的元素如果用 display:flex; 是没有滚动效果的: 3.scroll-view 中的需要滑动的元素要用 dislay:inline-block; 进行元素的横向编排: 4.包裹 scroll-view 的元素要加上样式–> overflow:hidden;white-space:nowrap; 5.有时候为了美观要隐藏滚动条,需要在样式里加上 核心代码: 在w

  • 微信小程序自定义toast组件的方法详解【含动画】

    本文实例讲述了微信小程序自定义toast组件的方法.分享给大家供大家参考,具体如下: 怎么创建就不说了,前面一篇有 微信小程序自定义prompt组件 直接上代码 wxml <!-- components/toast/toast.wxml --> <view class="toast-box {{isShow? 'show':''}}" animation="{{animationData}}"> <view class="to

  • 微信小程序裁剪头像插件使用方法详解

    本文实例为大家分享了微信小程序裁剪头像插件的具体使用代码,供大家参考,具体内容如下 用户上传头像,需要裁剪成正方形,结合在网上找到裁剪图片方法,封装为微信小程序组件.调用很方便. 参数介绍: image_url:需要裁剪的图片链接 showCutImage:是否显示裁剪图片组件 wxml调用: <cutImage imageUrl="{{image_url}}" bind:returnImageUrl="returnImageUrl"  wx:if="

  • 微信小程序获取用户openid的方法详解

    目录 获取openid的思路 需要修改的地方 完整代码 总结 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系 然而因为小程序中的openid不可以直接使用需要用code(登录凭证)去换取openid 获取openid的思路 获取openid首先需要调用小程序的login方法获取小程序的登录凭证code,然后使用code向微信换取登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key) 我这里是用一个点击事件来触

  • 微信小程序Echarts图表组件使用方法详解

    1:下载 GitHub 上的 项目 2:但项目下载之后,打开小程序开发工具,可以看到效果如下,适配性还是比较完美的. 如果是在项目里面引入组件的话,打开从github上面下载的代码,将ec-canvas文件夹复制黏贴到你的项目里面. 好的,组件已经复制到了我的项目里面,现在我想实现一个折线图,现在开始去组件里面搬运复制黏贴代码了. wxml <!--index.wxml--> <view class="container"> <ec-canvas id=&

  • 微信小程序自定义波浪组件使用方法详解

    最近看到好多app上有波浪背景,有动态的,有静态的,这里是在小程序中用得动态. 先看看效果图:里面的文本是组件内部定义的. 这是用两个svg的图片用css关键帧动画做的效果(这里谢谢子弹短信里前端群的小伙伴提供的web版的css动画文件) 在小程序中使用,注意一个问题:就是svg不可以直接使用,需要转为base64(这个大家应该有收藏吧),这里我已经转换好了,在下面的wxss中. 这里顺便用一下自定义组件: 首先定义组件 wave wave.wxml:这里我默认是用得显示个人信息.其中isSho

  • 详解微信小程序设置底部导航栏目方法

    详解微信小程序设置底部导航栏目方法 小程序底部想要有一个漂亮的导航栏目,不知道怎么制作,于是百度找到了本篇文章,分享给大家. 好了 小程序的头部标题 设置好了,我们来说说底部导航栏是如何实现的. 我们先来看个效果图 这里,我们添加了三个导航图标,因为我们有三个页面,小程序最多能加5个. 那他们是怎么出现怎么着色的呢?两步就搞定! 1. 图标准备 阿里图标库  http://www.iconfont.cn/collections/show/29 我们进入该网站,鼠标滑到一个喜欢的图标上面  点击下

  • 微信小程序实现页面导航与传参功能详解

    目录 一.页面导航 概述 分类 声明式导航 导航到tabBar页面 导航到非tabBar页面 后退导航 编程式导航 导航到tabBar页面 导航到非tabBar页面 后退导航 导航传参 声明式导航传参 编程式导航传参 一.页面导航 概述 顾名思义,页面导航指的是页面之间的相互跳转, 而页面传参就是在加载页面时将特定的参数传递过去从而成为该页面的参数. 分类 声明式导航:在页面上声明一个<navigator>导航组件,通过点击该组件实现页面跳转 编程式导航:通过调用小程序专门的导航API,实现页

  • 微信小程序 上传头像的实例详解

    微信小程序 上传头像的实例详解 最近在做微信小程序上传头像和上传照片功能就随手写一下代码: 上传头像html: <view class="edit-list"> <text class="list-name list-first">头像</text> <view class="edit-righr-bar"> <image class="head-portrait" src

随机推荐