前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >小程序 | 15-页面跳转

小程序 | 15-页面跳转

作者头像
CnPeng
发布于 2021-05-17 07:18:07
发布于 2021-05-17 07:18:07
87700
代码可运行
举报
文章被收录于专栏:CnPengDevCnPengDev
运行总次数:0
代码可运行

实现界面跳转有两种方式:通过 navigator 组件 和 通过 wx 的 api 跳转

1. navigator 组件实现跳转

1.1. 属性介绍

navigator api 文档:

https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html

navigator 组件主要用于实现界面的跳转,其常用属性如下:

其中 open-type有如下取值:

1.2. 基本使用

  • app.json
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "pages": [
    "pages/home/home",
    "pages/about/about",
    "pages/detail/detail",
    "pages/index/index",
    "pages/logs/logs"
  ],

  "tabBar": {
    "selectedColor": "#0066cc",
    "list": [{
      "pagePath": "pages/home/home",
      "text": "首页",
      "iconPath": "assets/tabbar/home.png",
      "selectedIconPath": "assets/tabbar/home_active.png"
    }, {
      "pagePath": "pages/about/about",
      "text": "关于",
      "iconPath": "assets/tabbar/share.png",
      "selectedIconPath": "assets/tabbar/share_active.png"
    }]
  },

  "window": {
    "navigationBarBackgroundColor": "#faa",
    "navigationBarTitleText": "我的小程序",
    "navigationBarTextStyle": "white"
  }
}
  • home.wxml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/home/home.wxml-->
<text>这是首页</text>

<!-- 1 navigator 实现页面跳转 -->
<navigator url="/pages/detail/detail">点击跳转到详情 detail 页面</navigator>

<!-- 2 navigator 的 opentype 属性 -->
<!-- 2-1-跳转到详情 -->
<navigator url="/pages/detail/detail" open-type="redirect">点击打开 detail 页面,并关闭当前页面</navigator>
<!-- 2-2-跳转到 tab 页面,url 也必须是 tabBar 中设置的一个页面的 url -->
<navigator url="/pages/about/about" open-type="switchTab">点击切换到另外的 TAB 页签</navigator>
  • detail.wxml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/detail/detail.wxml-->
<text>这是详情页面</text>
<navigator open-type="navigateBack">点击此处返回上一页</navigator>
<navigator url="/pages/index/index">点击打开 index 页面</navigator>
  • index.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--index.wxml-->

<!-- delta 的取值指定了向上回退几级 -->
<navigator open-type="navigateBack" delta="2">点击向上回退 2</navigator>

目录结构:

1.3. 跳转时传递数据

在页面间跳转时,如果需要传递数据,需要遵从如下规则:

  • 首页 -> 详情页:使用 URL 中的 query 字段
  • 详情页 -> 首页:在详情页面内部拿到首页的页面对象,直接修改数据
  • home.wxml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/home/home.wxml-->
<text>这是首页--{{title}}</text>
<!-- 3 跳转时传递数据 -->
<navigator url="/pages/detail/detail?name='张三'&age=23">点击跳转到详情页面</navigator>
  • home.js
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/home/home.js
Page({
  data: {
    title:"跳转前的标题"
  }
})
  • detail.wxml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/detail/detail.wxml-->
<text>这是详情页面</text>
<navigator open-type="navigateBack">点击此处返回上一页</navigator>
  • detail.js
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/detail/detail.js
Page({
  onLoad: function (options) {
    // 读取上一页传递过来的数据
    console.log(options)
    const name = options.name
    const age = options.age
    console.log(name, age)
  },

  onUnload: function () {
    // 获取当前活动的页面
    const pages = getCurrentPages()
    console.log(pages)
    // pages.length -1 表示当前页面,-2 表示当前页面的上一个页面
    const home = pages[pages.length - 2]
    // 修改上一页中的数据
    home.setData({
      title: "从 detail 回来了"
    })
  }
})

2. 通过 wx 的 api 实现跳转

某些情况下,我们希望用户点击某个 button 或者 view 时就实现跳转,此时我们就需要监听 button 或者 view,然后通过如下 API 实现跳转或返回:

  • wx.navigateTo(url[,])
  • wx.navigateBack([delta])

示例如下:

  • home.wxml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/home/home.wxml-->
<text>这是首页--{{title}}</text>
<!-- 3 跳转时传递数据 -->
<button bindtap="onBtnClick">点击跳转到详情页面</button>
  • home.js
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/home/home.js
Page({
  data: {
    title:"跳转前的标题"
  },
  onBtnClick:()=>{
    wx.navigateTo({
      url: "/pages/detail/detail?name='张三'&age=23",
    })
  }
})
  • detail.wxml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/detail/detail.wxml-->
<text>这是详情页面</text>
<button bindtap="onBack">点击此处返回上一页</button>
  • detail.js
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/detail/detail.js
Page({
  onLoad: function (options) {
    // 读取上一页传递过来的数据
    console.log(options)
    const name = options.name
    const age = options.age
    console.log(name, age)
  },
  onUnload: function () {
    // 获取当前活动的页面
    const pages = getCurrentPages()
    console.log(pages)
    // pages.length -1 表示当前页面,-2 表示当前页面的上一个页面
    const home = pages[pages.length - 2]
    // 修改上一页中的数据
    home.setData({
      title: "从 detail 回来了"
    })
  },
  onBack: () => {
    wx.navigateBack({
      delta: 1,
    })
  }
})
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CnPeng 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序——轮播图、组件传值、下拉刷新、导航 实战开发
滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。 属性表如下
wsuo
2020/09/22
1.6K0
零基础微信小程序开发——页面导航之声明式导航(保姆级教程+超详细)
在小程序开发中,页面导航是实现页面间切换和交互的重要手段。它允许开发者设计多种跳转逻辑,以满足用户在不同场景下的需求。例如,用户可能从首页跳转到商品详情页,或者从购物车页面跳转到支付页面等。
小白的大数据之旅
2024/12/28
2820
零基础微信小程序开发——页面导航之声明式导航(保姆级教程+超详细)
小程序页面跳转方法总结
在开发小程序的时候,会碰到页面间进行跳转的需求,小程序间页面跳转的方法有很多,大体分为两类,一个是指令方式,一个是用过js控制。
挥刀北上
2020/11/10
7.8K0
小程序页面跳转方法总结
微信小程序入门教程之四:API 使用
上一篇教程介绍了,小程序页面如何使用 JavaScript 脚本。有了脚本以后,就可以调用微信提供的各种能力(即微信 API),从而做出千变万化的页面。本篇就介绍怎么使用 API。
ruanyf
2020/11/04
3.2K0
微信小程序入门教程之四:API 使用
小程序页面事件与wxs脚本
在使用 组件跳转到指定的 tabBar 页面时,需要指定 url 属性和 open-type 属性,其中:
timerring
2023/06/10
4990
小程序页面事件与wxs脚本
小程序里页面跳转的两种方式
•1,借助navigator组件•2,借助wx.自带方法,在点击的时候做页面跳转 如下图所示的几个wx.方法
编程小石头
2021/01/12
6.7K0
小程序里页面跳转的两种方式
微信小程序-页面跳转navigator组件
在官方文档当中有提到一个叫做页面栈的这么一个东西,就是一个水杯,进入一个页面就是入到页面栈,退出就是从页面栈当中移除,就会显示下一个页面了。
程序员NEO
2023/05/22
6290
微信小程序-页面跳转navigator组件
如何使用小程序导航
在日常开发小程序中,我们总不能吧所有数据都堆在首页。为此,需要一些二级三级页面。今天,我们来介绍介绍小程序比较重要的导航组件,使用导航组件,可以在小程序内外部进行转跳,方便用户使用。
名字真难选a
2018/11/07
4.5K0
如何使用小程序导航
小程序开发项目实战:在线学习平台
随着教育行业的数字化转型,在线学习平台成为了学习者的重要选择。通过微信小程序,开发者可以为用户提供高效、便捷的在线学习体验。本文将通过实例分析,指导你开发一个简单的在线学习平台小程序,涵盖项目需求分析、架构设计、技术实现及优化等方面。
LucianaiB
2025/01/28
1510
微信小程序页面跳转方法和携带参数详解「建议收藏」
(3)wx.switchTab 方法跳转只适用于调转到设置了tabbar的页面
Java架构师必看
2022/02/03
4.3K0
小程序开发项目实战:旅游指南
随着人们生活水平的提高,旅游行业迎来了爆发式的增长。为了提供更便捷的服务和更丰富的体验,许多旅游平台选择通过微信小程序来为用户提供旅游信息、景点介绍、路线规划、住宿预订等功能。本文将通过实战案例,带领你从零开始开发一个简单的旅游指南小程序,涵盖项目的需求分析、架构设计、功能实现、技术选型等方面。
LucianaiB
2025/01/28
1480
微信小程序入门示例
下面做一个非常简单的小程序(列出新闻列表,点击标题后进入详细页面)用来体会小程序的开发方式 共有两个页面,一个是列表页,一个是详细页 通过这个示例,我们可以了解: 视图中如何获取数据 如何添加页面 页
dys
2018/04/04
1.7K0
微信小程序入门示例
【愚公系列】2022年03月 微信小程序-导航(跳转)
保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
愚公搬代码
2022/12/01
1K0
【愚公系列】2022年03月 微信小程序-导航(跳转)
小程序开发项目实战:新闻聚合应用
随着移动互联网的发展,新闻聚合类应用变得越来越流行,用户通过这些应用可以快速获取到最新的新闻、热点话题及深度报道。微信小程序作为一种轻量级的应用形态,凭借其免安装、快速启动的优势,成为了新闻聚合应用的理想平台。在这篇文章中,我们将以新闻聚合应用为例,讲解如何使用小程序开发这样的应用,涵盖项目结构、核心功能实现及具体的技术实现等方面。
LucianaiB
2025/01/28
2060
微信小程序-页面跳转数据传递
在之前的文章当中我们都实现了一个功能就是可以从上一个页面传递数据给下一个页面,那么我们能不能从下一个页面传递数据给上一个页面呢,答案是可以的。
程序员NEO
2023/05/22
3790
微信小程序-页面跳转wxAPI
在监听的方法当中使用 wx.navigateTo(Object object) 进行页面的跳转与传参:
程序员NEO
2023/05/22
7160
微信小程序-页面跳转wxAPI
小程序开发项目实战:外卖点餐系统
随着外卖行业的快速发展,越来越多的餐饮商家和消费者选择通过线上平台来完成点餐和配送。微信小程序作为一种轻量级、易于接入的应用形态,成为了外卖点餐系统的理想平台。本文将通过实战案例,带领你从零开始开发一个简单的外卖点餐系统,涵盖项目架构设计、核心功能实现和关键技术等方面。
LucianaiB
2025/01/28
1570
微信小程序入门文档下载_小程序开发教程全集免费
最新一版的微信开发者工具,把微信公众号的调试开发工作也集成了进去,可以更换开发模式。
全栈程序员站长
2022/09/20
10.8K0
微信小程序入门文档下载_小程序开发教程全集免费
微信小程序页面路由
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
菲宇
2019/10/22
1.3K0
微信小程序版博客——文章详情页设计及问题汇总
wxParse是将html格式的富文本内容转换成小程序可展示的内容的组件,在框架搭建那一篇文章中有提到。
Bug生活2048
2018/08/31
5K0
微信小程序版博客——文章详情页设计及问题汇总
推荐阅读
相关推荐
微信小程序——轮播图、组件传值、下拉刷新、导航 实战开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档