一个C#程序员学习微信小程序路由的笔记
路由大家应该都知道,在微信小程序也是有的,毕竟它是单页面应用程序。在WeChat中有五种跳转方式,分别是wx.switchTab、wx.reLaunch、wx.redirectTo、wx.navigateTo、wx.navigateBack。今天我们就说一说 如何使用这几个API来跳转页面,并且我们还要学习如何进行传参,还要知道页面栈这个知识。
在此之前,一定要学习下页面栈这个东西,要不然你就废了,小程序的页面栈最多可以存放10个页面,当等于10的时候,你就无法再用 navigateTo API的时候,你就无法在进行跳转了,因为它是原页面保留,在原来的页面上面进行添加的。
如果你还不懂的话,这么说吧,比如使用navigateTo从A页面跳转了B,又从B跳转到了C,最后从C跳转到了A那这个页面栈就已经到达了3个!我觉得已经说的差不多了。

但如果你使用了 redirectTo就不一样了,就在上面的实例中,假如我们从B跳转到了C使用了redirectTo那么就相当于有两个页面栈,因为使用它将会替换当前页面。

说了这么多,就是想讲下各种跳转方式,它的作用不同,所以不适当的使用就会让客户懵逼。下面是我总结路由API的作用。
navigateTo, redirectTo 只能打开非 tabBar 页面(一个是有回退按钮,后者没有)
。switchTab 只能打开 tabBar 页面。
比如想要跳转,你可以给按钮一个事件,并且在Js中配对方法,就好了,代码实现是这样的。
<button class="btn-ask" bindtap='mytab'><image src='/images/btn_ask.png' /></button>
Js的实现也很简单,就是通过wx对象的方法来进行跳转(上面说的跳转,都有!)
mytab:function(){
wx.showToast({
title: '加载中',
icon: 'loading',
duration: 1000
})
wx.navigateTo({
url: '../rediters/redi'
})
}
除了通过调用方法的形式,还可以通过 navigator 标签,这个标签就非常舒服了,因为我们的Js通常是要和后端的数据交互,根本不要这些垃圾代码,show代码!
<navigator url='../rediters/redi' hover-class="changestyle" redirect>hahaha</navigator> //那个hover-class的样式 是点击效果!
带上 redirect 就没有返回按钮,反而就有了。现在我们说一下在跳转的时候如何带参跳转!
只需要在定义的时候带上参数就可以了
wx.navigateTo({
url: '../rediters/rediters?queryId=1'
})
然后在Page中的Load事件中获取。
onLoad: function (options) {
console.log(options)
},

但现在问题来了,如何传递多个参数,或者传递个对象,并且如何接收呢?
wx.navigateTo({
url: '../rediters/rediters?queryId=1&State=2&name=3'
})
在传递的时候,写上多个参数,那么在load事件的 Options中,它就变成了一个对象。

传递一个对象也可这个差不多。只不过你可以通过Js的方法把它变成Json进行传递。
wx.navigateTo({
url: '../rediters/rediters?testData=' + JSON.stringify(this.data.testData)
})
之后在load事件中进行 parse就可以了。
一个C#程序员学习微信小程序路由的笔记的更多相关文章
- 一个C#程序员学习微信小程序的笔记
客户端打开小程序的时候,就将代码包下载到本地进行解析,首先找到了根目录的 app.json ,知道了小程序的所有页面. 在这个Index页面就是我们的首页,客户端在启动的时候,将首页的代码装载进来,通 ...
- 一个程序员对微信小程序的看法
我们公司用两周的时间开发了一款微信小程序,叫<如e支付>,大家可以去体验一下.由于接口都是写好的,所以开发起来很快.我将从4个不同的角度来介绍我对微信小程序的理解. 1.技术的角度 ...
- 与大家分享学习微信小程序开发的一些心得
因为我也才开始学习微信小程序不久,下文也是现在的一时之言,大家有不同的想法也可以在评论里共同交流讨论,希望文章能给大家提供一点点帮助. 最近接触到了一些前端框架,像Vue.js,React,发现小程序 ...
- 微信小程序一:微信小程序UI组件、开发框架、实用库
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/8079095.html 内容持续更新,维护中 邮箱 ...
- 小程序-文章:微信小程序常见的UI框架/组件库总结
ylbtech-小程序-文章:微信小程序常见的UI框架/组件库总结 1.返回顶部 1. 想要开发出一套高质量的小程序,运用框架,组件库是省时省力省心必不可少一部分,随着小程序日渐火爆,各种不同类型的小 ...
- Django+小程序技术打造微信小程序助手 ✌✌
Django+小程序技术打造微信小程序助手 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 从零到一的完整项目开发实战过程,项目开发聚焦重要知识点,先原理后实战 ...
- Django2.0+小程序技术打造微信小程序助手✍✍✍
Django2.0+小程序技术打造微信小程序助手 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题 ...
- Django+小程序技术打造微信小程序助手
Django+小程序技术打造微信小程序助手 整个课程都看完了,当前这个课程的分享可以往下看,下面有某盘的链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,同时也分享下自己的总结 ...
- [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)
本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类 —— 微信小程序实战商城 ...
随机推荐
- FFPLAY的原理(七)
同步音频 现在我们已经有了一个比较像样的播放器.所以让我们看一下还有哪些零碎的东西没处理.上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同 步方式.我们将采用和视频一样的方式:做一个内 ...
- pg_dump命令帮助信息
仅为参考查阅方便,完全命令行帮助信息,无阅读价值. pg_dump dumps a database as a text file or to other formats. Usage: pg_du ...
- 实验6 shell程序设计一(1)
设计如下一个菜单驱动程序 Use one of the following options: P:To display current directory S:To display the name ...
- 神奇的ASCⅡ码图
神奇的ASCⅡ码图 可能在网上也常见了asc2码图,但你知道是怎么做出来的吗?(总不可能是人一个一个字码进去的吧,当然,不排除有这种神人的可能
- 第一章 C++概述
第一节 C++语言的发展历史 略 第二节 C++语言的特点 1.C++是一种面向对象的程序设计语言,其中的新技术主要包括: 抽象数据类型 封装和信息隐蔽 以继承和派生方式实现程序的重用 以运算符重载和 ...
- Spring MVC 文件上传 & 文件下载
索引: 开源Spring解决方案--lm.solution 参看代码 GitHub: pom.xml WebConfig.java index.jsp upload.jsp FileUploadCon ...
- 基于.net的分布式系统限流组件
在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可以让整个系统的运行更加平稳.今天要与大 ...
- shell 常用命令语法简介
一.grep用法 ************************************** ++++++用一些特殊的函数来处理参数++++++ *$# 传递给函数的参数个数 *$* 显示所有传递给 ...
- Linux获取网络接口信息
linux获取网络接口信息需要用到的函数为ioctl(),结构体struct ifreq,struct ifconf 1.ioctl()函数原型及作用 #include <sys/ioctl.h ...
- JavaScript设计模式 Item 4 --继承
1.继承 在javascript中继承是一个非常复杂的话题,比其他任何面向对象语言的中的继承都复杂得多.在大多数其他面向对象语言中,继承一个类只需要使用一个关键字即可.与它们不同,在javascrip ...