• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 微信小程序 页面跳转和数据传递实例详解

微信小程序 页面跳转和数据传递实例详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了微信小程序 页面跳转 数据传递等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
微信小程序 页面跳转和数据传递

1.先导

在Android中,我们Activity和Fragment都有栈的概念在里面,微信小程序页面也有栈的概念在里面。微信小程序页面跳转有四种方式:

1.wx.navigateTo(OBJECT);
2.wx.redirectTo(OBJECT);
3.wx.switchTab(OBJECT);
4.wx.navigateBack(OBJECT)
5.使用实现对应的跳转功能;

分析:

  1. 其中navigateTo是将原来的页面保存在页面栈中,在跳入到下一个页面的时候目标页面也进栈,只有在这个情况下点击手机的返回按钮才可以跳转到上一个页面;

  2. redirectTo和switchTab都是先清除栈中原来的页面,然后目标页面进栈,使用这两种跳转方式,都不能通过系统的返回键回到上一个页面,而是直接退出小程序;

  3. redirectTo使用的时候一定要配合tabBar或是页面里面可以再次跳转按钮,否则无法回到上一个页面;

  4. switchTab跳转的页面必须是tabBar中声明的页面;

  5. tabBar中定义的字段不能超过5个页面,小程序的页面栈层次也不能超过5层。

  6. navigateBack只能返回到页面栈中的指定页面,一般和navigateTo配合使用。

  7. wx.navigateTo 和 wx.redirectTo 不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面

2.页面跳转的具体操作

(1)wx.navigateTo(OBJECT)

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


参数类型必填说明
urlString是需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2'
successFunction否接口调用成功的回调函数
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

wx.navigateTo({
 url: 'test?id=1'//实际路径要写全
})

//test.js
Page({
 onLoad: function(option){
 console.log(option.query) 
 }
})

注意:为了不让用户在使用小程序时造成困扰,我们规定页面路径只能是五层,请尽量避免多层级的交互方式。

(2)wx.redirectTo(OBJECT)

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


参数类型必填说明
urlString是需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2'
successFunction否接口调用成功的回调函数
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

wx.redirectTo({
 url: 'test?id=1'
})

(3)wx.switchTab(OBJECT)

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

OBJECT 参数说明:


参数类型必填说明
urlString是需要跳转的 tabBar 页面的路径(需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数
successFunction否接口调用成功的回调函数
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

{
 "tabBar": {
 "list": [{
  "pagePath": "index",
  "text": "首页"
 },{
  "pagePath": "other",
  "text": "其他"
 }]
 }
}

wx.switchTab({
 url: '/index'
})

(4)wx.navigateBack(OBJECT)

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。

OBJECT 参数说明:


参数类型必填说明
deltaNumber1返回的页面数,如果 delta 大于现有页面数,则返回到首页。

示例代码:

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

// 此处是A页面
wx.navigateTo({
 url: 'B?id=1'
})

// 此处是B页面
wx.navigateTo({
 url: 'C?id=1'
})

// 在C页面内 navigateBack,将返回A页面
wx.navigateBack({
 delta: 2
})

(5)使用<navigator/>标签实现页面跳转

navigator

页面链接。


参数类型必填说明
urlString
应用内的跳转链接
redirectBooleanfalse打开方式为页面重定向,对应 wx.redirectTo(将被废弃,推荐使用 open-type)
open-typeStringnavigate可选值 ‘navigate'、'redirect'、'switchTab',对应于wx.navigateTo、wx.redirectTo、wx.switchTab的功能
hover-classStringnavigator-hover指定点击时的样式类,当hover-class=”none”时,没有点击态效果
hover-start-timeNumber50按住后多久出现点击态,单位毫秒
hover-stay-timeNumber600手指松开后点击态保留时间,单位毫秒

示例代码:

<navigator url="navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator>
 <navigator url="redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">在当前页打开</navigator>
 <navigator url="index" open-type="switchTab" hover-class="other-navigator-hover">切换 Tab</navigator>

3.页面的路由和生命周期

(1)页面的路由

在小程序中所有页面的路由全部由框架进行管理,对于路由的触发方式以及页面生命周期函数如下:






路由方式触发时机路由后页面路由前页面
初始化小程序打开的第一个页面onLoad,onShow
打开新页面调用 API wx.navigateTo 或使用组件onLoad,onShowonHide
页面重定向调用 API wx.redirectTo 或使用组件onLoad,onShowonUnload
页面返回调用 API wx.navigateBack 或用户按左上角返回按钮onShowonUnload(多层页面返回每个页面都会按顺序触发onUnload)
Tab 切换调用 API wx.switchTab 或使用组件 或用户切换 Tab各种情况请参考下表

Tab 切换对应的生命周期(以 A、B 页面为 Tabbar 页面,C 是从 A 页面打开的页面,D 页面是从 C 页面打开的页面为例):


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-11-30微信小程序 使用canvas制作K线实例详解
  • 2018-11-30教你如何从零建造一个小程序项目
  • 2017-06-20微信小程序Markdown渲染库
  • 2018-11-23微信小程序云开发API 获取数据库查询及更新指令
  • 2018-11-30小程序开发基础篇之logs页面解析(6)
  • 2018-11-30小程序开发之选项卡的简单实现实例
  • 2018-11-30关于微信小程序五星评分效果的实现
  • 2018-11-30小程序中搜索功能的实现方法(代码)
  • 2018-11-30微信小程序开发技巧及填坑记录
  • 2018-11-30微信小程序 弹幕功能

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于微信小程序开发详解文章推荐
    • DVA框架统一处理所有页面的loading状态
    • 如何获取小程序中的二维码(代码)
    • 微信小程序实现图片自适应(支持多图)
    • 微信小程序注释
    • 微信小程序实战实例开发流程详细介绍
    • 使用slider设置数据值及switch开关组件功能实现微信小程序
    • 上海唯帆小程序开发组
    • 微信小程序之新建项目hello WeApp的介绍
    • 分享小程序页面开发应该注意的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有

当前页面路由后页面触发的生命周期(按顺序)