第七篇:微信小程序的跳转页面

前提:建议还没学HTML、CSS、JavaScript、JSON、vue、Ajax的兄弟姐妹们,先去把这些基础补好过一遍,不然不好理解微信小程序

前面这一篇已经讲过一次<navigator>跳转页面的用法了,今天详细讲解一下

回顾:

小程序导航跳转页面有两种方式——>

第一种是用【<navigator>组件】直接跳转,简单用web角度理解就是类似直接用<a>标签超链接跳转,叫做【声明式导航】;

第二种是用【wx.switchTab( )】跳转,简单用web角度理解就是类似利用JavaScript函数跳转,叫做【编程式导航】。这个就先不讲,先讲第一种【声明式导航】

一、声明式导航

声明式导航也分两种

1、tabBar页面跳转

tabBar在【JSON配置】会讲,tabBar就是小程序底部或顶部那个导航栏,如果这个页面配置了这条导航栏,那么要跳转到导航栏的页面就是用这个方法

正常json那里配置了下面导航栏一点就可以跳转

那要是我还想通过点上面主体页面的地方跳转到导航栏上某个页面就这样

代码编写规则如下:

url必须有'/'开头,必须要设置open-type="switchTab",不设置没用

<!-- 声明式导航:导航到tabBar -->
<navigator url="/pages/16_9-grid/9-grid" open-type="switchTab">导航到tabBar</navigator>
<!-- url必须有'/'开头!!! -->

2、非tabBar页面跳转

那要跳转到不是导航栏的页面,就得用这个方法

代码编写规则如下:

导航到非tabBar可以不用设置open-type,如果设置了,值只能是navigate

<!-- 声明式导航:导航到非tabBar -->
<navigator url="/pages/17_aiAPI/aiAPI" open-type="navigate">导航到非tabBar</navigator>
<!-- 导航到非tabBar可以不用设置open-type,如果设置了,值只能是navigate -->

3、返回上一页或多页

在跳转到的页面设置【返回跳转】

代码编写规则如下:

不需要写url,直接open-type="navigateBack"

返回多页就要设置detal,值就是返回多少页

<!-- 返回1页 -->
<navigator open-type="navigateBack">返回上一页</navigator><!-- 返回多页 -->
<!-- 返回多页就要设置detal,值就是返回多少页 -->
<navigator open-type="navigateBack" delta="2">返回2页</navigator>

二、编程式导航

编程式导航就可以简单理解:在js文件里让它跳转;那它跟<navigator>有啥区别?这不是多此一举吗?

很明显是有区别的,你navigator只有设置这个组件才可以跳转页面;但是编程式导航只需要组件绑定事件就可以实现跳转了,比如<button>、<view>、<swiper>......这些组件绑定了编程式导航,就都可以实现跳转了,而且还可以在跳转的时候执行其他事情

【编程式导航】的【跳转tabBar页面函数】和【跳转非tabBar页面函数】的对象参数的包含的配置属性:

1、【编程式导航】的【跳转tabBar页面函数】

用wx.switchTab( {...} )函数,可以注意也就是把【声明式导航】里【open-type="switchTap"】换成在js里写【wx.switchTab( )】而已,效果和【声明式导航】的【跳转tabBar页面函数】一样

<!-- WXML部分 -->
<button bind:tap="goto_tabBar">跳转第二页</button>
//JS部分
Page({goto_tabBar(){// wx.switchTab()跳转tabBar页面wx.switchTab({url: '/pages/16_9-grid/9-grid',//下面这些要是没有特殊要求的话,不写其实也行,这里只是做个展示success: function() {console.log('跳转成功')},fail: function() {console.log('跳转失败')},complete: function() {console.log('成功、失败都会执行')}})}
})

2、【编程式导航】的【跳转非tabBar页面函数】

用wx.navigateTo( {...} )函数,可以注意也就是把【声明式导航】里【open-type="navigate"】换成在js里写【 wx.navigateTo( )】而已,效果和【声明式导航】的【跳转非tabBar页面函数】一样

<!-- WXML部分 -->
<button bind:tap="goto_navigator">跳转非tarBar页面</button>
//JS部分
Page({goto_navigator(){// wx.navigateTo()跳转非tabBar的页面wx.navigateTo({url: '/pages/17_aiAPI/aiAPI',//下面这些要是没有特殊要求的话,不写其实也行,这里只是做个展示success: function() {console.log('跳转成功')},fail: function() {console.log('跳转失败')},complete: function() {console.log('成功、失败都会执行')}})}
})

3、【编程式导航】的【返回页面函数】

用wx.switchTab( {...} )函数,可以注意也就是把【声明式导航】里【open-type="navigate"】换成在js里写【 wx.navigateTo( )】而已,效果和【声明式导航】的【跳转非tabBar页面函数】一样

返回一页

<!-- WXML部分 -->
<button bind:tap="backto_last">返回上一页</button>
//JS部分
Page({//返回上一页backto_last(){//返回上一页的话就啥也不用写,有个wx.navigateBack()就够了wx.navigateBack()}
})

返回多页

<!-- WXML部分 -->
<button bind:tap="backto_2page">返回2页</button>
//JS部分
Page({backto_2page(){//直接返回多页wx.navigateBack({delta: 2 //只需要多这一步,跟<navigator>组件的返回多页一样加一个delta})}
})

【编程式导航】的【返回页面函数】的对象参数的包含的配置属性:

三、导航传参

没什么难的知识点,一句话简单说明:跟Ajax的带参数网址一模一样。只需要在网址后加一个"?",然后后面拼接参数,参数写成"参数=参数值"形式,多个参数"&"隔开,搞定。

不管是【声明式导航】还是【编程式导航】都是一样,在url那改就行了

<!-- WXML部分 -->
<navigator url="/pages/17_aiAPI/aiAPI?name=CZM&age=23" open-type="navigate">导航到非tabBar</navigator>//JS部分
wx.navigateTo({url: '/pages/17_aiAPI/aiAPI?name=CZM&age=23'
)}//都是一样的方式传参

然后这些参数还会在onLoad函数自动获取到,要使用它的话可以挂到data上

//JS部分
Page({data:{//可以用data来获取页面加载时获取到的【参数对象】,注意是【对象】query: {}},//事件监听函数会在跳转到该页面的时候,自动获取到参数,这里就试一下把参数输出来onLoad: function(option) {console.log(option)//因为option获取到了参数,但是他只是局部形参,在别的函数就不能用了//那就用this.setData()把参数值挂到datathis.setData({query: option})},
//现在在别的函数通过用data的值来使用获取到的参数值method1: function(){console.log("在别的函数输出获取到的参数:")console.log(this.data.query)}
})

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【C++从0到王者】第四十八站:最短路径

文章目录 一、最短路径二、单源最短路径 -- Dijkstra算法1.单源最短路径问题2.算法思想3.代码实现4.负权值带来的问题 三、单源最短路径 -- Bellman-Ford算法1.算法思想2.算法实现3.SPFA优化4.负权回路 四、多源最短路径 -- Floyd-Warshall算法1.算法思想2.算法实现 一、最短路…

93. 递归实现组合型枚举 刷题笔记

与我前面发的递归实现那一题有点相似 可以看看 94. 递归实现排列型枚举 刷题笔记-CSDN博客 思路 用u记录 选到哪一个位置 一旦选完 就输出 该题 要求升序 我们在选数时加入一个条件 大于上一个选择的数即可 依旧是从小到大搜到符合条件的每一个数 代码 #include<…

Vue中<style scoped lang=“scss“>的含义

这段代码中的<style scoped lang"scss">是HTML和Vue框架结合使用时常见的一个模式&#xff0c;具体含义如下&#xff1a; scoped&#xff1a;这是一个Vue.js特有的属性&#xff0c;用来指定样式只应用于当前组件的元素。没有这个属性时&#xff0c;样式会全局应…

element-plus表格合并

要实现这样的表格&#xff0c; 怎么做呢&#xff1f; 甚至是这种三级的呢&#xff1f; 官网的案例也是通过这个方法进行配置的&#xff0c;也就是说表格长什么样&#xff0c;关键在怎么处理的方法上。 这是官网的方法&#xff0c;可参考拓展&#xff1a; const arraySpanMeth…

外包干了7个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入北京某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

Unity编写Shader内置各种矩阵和方法介绍

嗨&#xff0c;各位小伙伴们&#xff0c;我是你们的好朋友咕噜铁蛋&#xff01;今天&#xff0c;我们要来聊一聊关于Unity中编写Shader时内置的各种矩阵和方法。作为Unity开发者&#xff0c;掌握Shader编写是非常重要的一项技能&#xff0c;而了解内置的矩阵和方法将帮助我们更…

Acwing 周赛135 解题报告 | 珂学家 | 反悔堆贪心

前言 整体评价 VP了这场比赛&#xff0c; T3挺有意思的&#xff0c;反悔贪心其实蛮套路的。 A. 买苹果 思路: 签到 n, x list(map(int, input().split())) print (n // x)B. 牛群 思路: 分类讨论 from collections import Counters input() cnt Counter(s)lists sorte…

ROS2高效学习第五章 -- ros2 service 编程之自定义服务

ros2 service 编程之自定义服务 1 前言和资料2 正文2.1 两种自定义服务的讨论2.2 自定义服务独立成包2.2.1 自定义服务&#xff08;diy_interface&#xff09;2.2.2 service_cpp使用自定义服务2.2.3 service_py使用自定义服务 2.3 自定义服务放在模块包里&#xff08;service_m…

python3.x的在线与离线安装纯净版

由于计划搭建一套使用python自动分析日志的流程&#xff0c;发现我们的测试环境CentOS 7仍然没有安装python3&#xff0c;无法使用这些新的库。Python 3在设计上着重提升了语言的一致性和易用性&#xff0c;它引入了许多关键改进&#xff0c;此外&#xff0c;Python 3环境拥有丰…

2024环境工程、能源系统与化学材料国际会议(ICEEESCM 2024)

2024环境工程、能源系统与化学材料国际会议&#xff08;ICEEESCM 2024) 一、【会议简介】 2024环境工程、能源系统与化学材料国际会议&#xff08;ICEEESCM 2024)将于2024年在西安举行。会议将围绕环境工程、能源系统与化学材料等议题展开讨论&#xff0c;旨在为从事环境工程…

【golang】25、图片操作

用 “github.com/fogleman/gg” 可以画线, 框 用 “github.com/disintegration/imaging” 可以变换颜色 一、渲染 1.1 框和字 import "github.com/fogleman/gg"func DrawRectangles(inPath string, cRects []ColorTextRect, fnImgNameChange FnImgNameChange) (st…

雨云:为你拨开云雾见青天

一、雨云品牌概览 雨云&#xff0c;这名字一听就让人联想到蓝天白云&#xff0c;清爽自然。那么&#xff0c;这个品牌是否真的如其名&#xff0c;能为我们这些在数字世界中漂泊的旅人提供一片宁静、稳定的“云”呢&#xff1f;接下来&#xff0c;让我们深入了解雨云的资质、能…

js 面试运行机制和存储(从以下几方面理解),栈和堆的理解

1 工作原理 每个浏览器都有自己的引擎&#xff0c;通过引擎把代码解析运行起来。 2 生命周期 3-1 内存分配 3-2 内存使用 3-3 内存回收 3 栈和堆的理解 timer也是个函数--所以也是引用类型。 4 如何运行 以下可忽略 首先声明变量&#xff0c;放在左侧栈中执行&#xff0c;在执行…

AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用

原文链接&#xff1a;AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的强大功能与应用场景 3)国内外经典大模型&#xff08;ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diff…

C++设计模式之——组合模式

文章目录 组合模式的基本概念&#xff1a;**C代码案例简述&#xff1a; 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组织成树形结构&#xff0c;并且能够像处理单个对象一样处理整个组合结构。在组合模式中&#xff0c;…

嵌入式中回调函数的实现方法

一、什么是回调函数 1.1、回调函数的定义和基本概念 回调函数是一种特殊的函数&#xff0c;它作为参数传递给另一个函数&#xff0c;并在被调用函数执行完毕后被调用。回调函数通常用于事件处理、异步编程和处理各种操作系统和框架的API。 基本概念&#xff1a; 回调&#xf…

MATLAB环境下基于高斯滤波器-广义拉普拉斯算子的细胞核自动检测

作为病理图像分析的基础&#xff0c;细胞核检测可为细胞形态、纹理等多种相关分析提供支持&#xff0c;对于临床诊断具有重要意义。但是细胞核的人工识别过程十分费时费力&#xff0c;并且不同医生之间存在主观标注差异。因此&#xff0c;利用计算机技术进行自动检测能够更为客…

cuttag

1、官方流程&#xff0c;太空了&#xff0c;还是得结合文章分析 CUT&Tag Data Processing and Analysis Tutorial 2、paper流程参考 【Metabolic reprogramming by histone deacetylase inhibition preferentially targets NRF2-activated tumors】 【TASOR is a pseudo…

新版本的AndroidStudio生产签名文件打包失败

最近在创建新项目的时候&#xff0c;使用AS生产新的签名并打包时&#xff0c;打包失败&#xff0c;一开始报签名格式问题&#xff0c;查了一下&#xff0c;有的说要迁移到行业标准格式PKCS12,但是试了一下还是报错&#xff0c;再次查资料发现是JDK版本问题&#xff0c;不过还有…

基于centos的linux上docker安装,及mysql、redis等应用在docker容器中的安装

Docker环境安装 安装yum-utils&#xff1a; yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2为yum源添加docker仓库位置&#xff1a; yum‐config‐manager ‐‐add‐repo https://download.docker.com/linux/centos/docker‐ce.repo如果上面执行命令后…