《微信小程序开发从入门到实战》学习六十

6.2 账号信息API

6.2.3 小程序账号信息API

使用wx.getAccountInfoSync接口可以获取小程序账号信息,该接口自基础库2.2.2版本开始支持。代码如下:

const accountInfo = wx.getAccountInfoSync()

console.log(accountInfo.miniProgram.appId) // 小程序appId

6.3 路由API

小程序使用路由API从一个页面跳转到另一个页面。页面跳转,两个页面都有一些生命周期函数会被调用。用户打开的所有页面都会被保存到一种名叫“页面栈”的存储结构。本节对这三部分会进行介绍。

  小程序通过调用API可以跳转到其他的小程序中。该接口不属于路由API,但功能接近,会在本节介绍。

6.3.1 页面栈

  所谓“栈”,是指一种逻辑上的数据结构,用于存储数据。最初,栈里面没有任何数据。可以对栈进行两种操作:一种是将数据放进去,称为“入栈”(或“进栈”);另一种是将栈里面的数据取出来,称为“出栈”(或“退栈”)。栈里面保存的数据拥有先后顺序,第一个入栈的数据位于“栈底”,最后一个入栈的数据位于“栈顶”。只有当栈里面包含数据时才可以执行出栈操作,出栈时只能取出位于栈顶的数据,在这之后,被取出的数据的前一个数据会成为新的栈顶。

  “页面栈”是指专门用于存储页面的栈,页面栈的示意图如下所示:

  小程序将已打开的页面保存在页面栈中,栈顶的页面就是当前用户看到的页面。用户刚打开小程序,小程序首页自动加入页面栈。使用路由API时,实际上就是对页面栈进行操作,每当用户打开新页面,该页面就会入栈,当用户返回前一个页面,就是对页面执行了出栈操作。

  页面栈决定了小程序的当前页面,以及用户可后退到哪些页面。

6.3.2 路由API

路由API实际上是对页面栈进行操作。

小程序使用路由API从一个页面跳转到另一个页面。用户单击A页面按钮跳转到B页面时,实际上是在页面A按钮上设置了单击事件监听函数,在函数中使用路由API。

一共有五种路由API,实现了不同的页面切换功能。

1.wx.navigateTo(Object object)

调用该接口时,将保留当前页面,并跳转到新的页面。即保留页面栈的所有内容,将新的页面入栈。

小程序规定页面栈最多保存10个页面,超过是会导致调用接口失败。因此开发者需要避免用户打开过多的层级,也要避免页面之间的循环跳转(如页面A可以打开页面B,B也可打开A)。

wx.navigateTo传入Object类型的参数,该参数支持四个属性,url和回调函数success,fail,complete。url表示需要跳转的页面的路径,可以带页面路径参数,用?分隔,不同参数&分隔,如‘path?key=value&key2=value2’。接口示例代码如下:

    wx.navigateTo({

      url: 'test?id=1',

    })

不能使用该接口跳转到tabBar页面,需要使用另一个接口

2.wx.navigateBack(Object object)

wx.navigateBack是wx.navigateTo接口的逆操作。调用该接口将关闭当前页面,返回到上一级或多级页面。即让页面栈的栈顶页面依次出栈,使它前一个或前n个页面重新成为栈顶。调用该接口会使页面栈的内容减少。如果当前页面栈只有一个页面,调用接口会失败。

wx.navigateBack传入一个Object类型的参数,delta参数和三个回调函数。delta表示返回的页面数,默认值为1表返回上一页,如果大于现有页面数,则返回到首页。代码示例如下:

// 此处是A页面

    wx.navigateTo({

      url: 'B?id=1',

    })

    // 此处是B页面

    wx.navigateTo({

      url: 'C?id=1',

    })

    // 在C页面内navigateBack返回2个页面,将返回到A页面

    wx.navigateBack({

      delta: 2

    })

3.wx.redirectTo(Object object)

调用该接口,将关闭当前页面,然后跳转到一个新的页面,即让页面栈的栈顶页面出栈,然后将新的页面入栈。调用该接口不会让栈的数量发生改变,可以避免栈超出容量限制。

Object支持的属性是url和三回调函数,和wx.navigateTo同,示例代码如下:

    wx.redirectTo({

      url: 'test?id=1',

    })

4.wx.reLaunch(Object object)

调用该接口时将关闭所有已打开的页面,然后打开一个新的页面,可以是tabBar页面也可不是。

即清空页面栈,再将新的页面入栈,会使栈只保留一个页面。

Object和wx.navigateTo同,示例代码如下:

    wx.reLaunch({

      url: 'test?id=1',

    })

5.wx.switchTab(Object object)

最特殊,只能在小程序开启tabBar功能时使用。调用时,将关闭所有非tabBar页面,并跳转到指定的tabBar页面。即删除页面栈所有非tabBar页面,如果新打开的页面不在页面栈中,则将它入栈。

Object同wx.navigateTo的Object参数。

需注意,Object.url必须是在app.json的tabBar字段声明的页面,并且不能带页面路径参数。代码如下:

    wx.switchTab({

      url: '/index',

    })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294687.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署tomcat单机多实例,keepalived+mysql的互为主从高可用,mysql+keepalived高可用

部署tomcat单机多实例 在Tomcat中部署单机多实例是一种常见的做法,它允许您在同一台服务器上运行多个独立的Tomcat实例,每个实例都有自己的配置、日志和应用程序。 安装jdk环境 首先配置java环境 [roottomcat ~]# tar xf jdk-8u211-linux-x64.tar.gz…

将PPT的图保持高分辨率导入到Word / WPS中

1、将PPT中画好的图组合在一起,选择组合后的图复制(Ctrlc) 2、在Word中,选中左上角的粘贴选项--->选择性粘贴 WPS选择元文件 / Word选择增强型图元文件 这样放大也不模糊了

碳排放预测 | 基于ARIMA和GM(1,1)的碳排放预测(Matlab)

目录 预测效果基本介绍模型描述ARIMA模型GM(1,1)模型 程序设计参考资料 预测效果 基本介绍 基于ARIMA和GM(1,1)的碳排放预测(Matlab) 基于ARIMA(自回归移动平均模型)和GM(1,1)(灰色预测模型)的碳排放预测是…

一文搞懂 java8 reduce操作

什么是 reduce Java8 中有两大最为重要的改变,其一是 Lambda 表达式,另一个就是 Stream API 了。 Stream 是 Java8 中处理集合的关键抽象概念,它将数据源流化后,可以执行非常复杂的查找、过滤和映射数据、排序、切片、聚合统计等…

Vue项目如何打包

1. 确保你已经在项目根目录下安装了Vue CLI。如果没有安装,可以通过以下命令进行安装: npm install -g vue/cli 2. 在项目根目录下打开终端或命令行工具,运行以下命令来创建一个生产环境的打包文件: npm run build 这个命令会执…

pip 常用指令 pip list 命令用法介绍

📑pip 常用命令归类整理 pip list 是一个用于列出已安装的 Python 包的命令。这个命令会显示出所有已安装的包,以及它们的版本号。 pip list 命令有以下参数 -o, --outdated:列出所有过时的包,即有新版本可用的包。-u, --uptod…

K8s出现问题时,如何排查解决!

K8s问题的排查 1. POD启动异常、部分节点无法启动pod2. 审视集群状态3. 追踪事件日志4. 聚焦Pod状态5. 检查网络连通性6. 审视存储配置7. 研究容器日志8. K8S集群网络通信9. 问题:Service 是否通过 DNS 工作?10. 总结1、POD启动异常、部分节点无法启动p…

react 2

1.快速搭建开发环境 2.react渲染流程 3.1 jsx基础 概念 3.2 jsx基础 本质 3.3 jsx基础 jsx表达式 3.4 jsx基础 实现列表渲染 3.5 jsx基础 实现条件渲染 3.5 jsx基础 实现复杂的条件渲染 4. react中事件绑定 5.react组建基础使用 6.1 useState 6.2 useState修改状态的规则 7.基础…

力扣日记12.23-【二叉树篇】501. 二叉搜索树中的众数

力扣日记:【二叉树篇】501. 二叉搜索树中的众数 日期:2023.12.23 参考:代码随想录、力扣 501. 二叉搜索树中的众数 题目描述 难度:简单 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出…

Microsoft edge浏览器对比谷歌浏览器 edge浏览器好用吗 edge浏览器怎么更换主页

近年来,由于谷歌浏览器的垄断,许多人都已经习惯于使用谷歌浏览器。随着互联网的普及,浏览器成为了人们上网必备的工具之一。而近年来,微软公司推出的 Microsoft Edge 浏览器备受关注。那么,Microsoft Edge 浏览器真的好…

idea运行tocmat报错

1.检查环境变量是否配置正确。 网上有许多配置tomcat环境变量的方法,这里不再赘述。 2.判断是否有该情况: 在tomcat的bin目录下有三个bat文件(startup.bat,shutdown.bat,catalina.bat),随意双击一个,会报出上述错误。但是右键使…

基于SpringBoot的APK检测管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…