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

2024-03-01 08:20

本文主要是介绍第七篇:微信小程序的跳转页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前提:建议还没学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://www.chinasem.cn/article/761804

相关文章

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动