一个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 续上一篇的文章:微信小程序之商品属性分类 —— 微信小程序实战商城 ...
随机推荐
- 用sql获取一段时间内的数据
我把我CSDN写的 搬来博客园了.. SELECT * FROM 表名 WHERE timestampdiff(MINUTE, SYSDATE(), send_time) <=60 AND ...
- jquery和ajax的关系详细介绍【转】
jquery和ajax的关系详细介绍 http://www.jb51.net/article/43965.htm
- webpack4.x版本splitChunksPlugin的配置项详解与实际应用场景
在工程化地使用webpack时,公共代码抽离是不可或缺的,4.x版本之后,commonsChunkPlugin已经被去掉,splitChunksPlugins登上舞台,并且优化了很多配置选项,集体课件 ...
- POJ 2411 解题报告
传送门:http://poj.org/problem?id=2411 题目简述 有一个\(W\)行\(H\)列的广场,需要用\(1*2\)小砖铺满,小砖之间互相不能重叠,问 有多少种不同的铺法? 输入 ...
- 命令行备忘录 cli-memo
前言 有时候想用一个简洁点儿的备忘录,发现没有简洁好用的,于是就想着开发一个,秉着简洁 的思想,所以连界面都没有,只能通过命令行来操作(尽可能的将命令简化).设计的时候 借鉴了git分支的思想,每个备 ...
- PHP后端之验证码
PHP后端之验证码 前言: 打算写一些实际开发中遇到的东西.我这个人记性不好,觉得记下来,以后就算想找,也能找得到. PHP,可能很长一段时间都不会使用了.所以还是留一些记录. 另外还有一些服务器架设 ...
- 免密登录-python
要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前,还有一个重要的事情要处理,那就 ...
- asp.net mvc 使用 Autocomplete 实现类似百度,谷歌动态搜索条提示框。
Autocomplete是一个Jquery的控件,用法比较简单. 大家先看下效果: 当文本框中输入内容,自动检索数据库给出下拉框进行提示功能. 需要用此控件大家先到它的官方网站进行下载最新版本: ht ...
- ORALCE删除临时表空间的方法---解决ORA01033: oralce initialization or shutdown in progress方案
当一台主机上oralce 临时表空间太多,而又用不到这些临时表空间的时候, TABLESPACE 会占用大量的存储空间.本文介绍一种删除ORACLE 临时表空间的方法. 一 启动任务管理器.在任 ...
- Docker for Windows 使用 VMware WorkStation
一.前言 Docker for Windows 不同于 Docker Toolbox.Docker for Windows 对系统的要求至少为Windows 10专业版,因为它需要Hyper-V的支持 ...