在微信小程序里面的跳转其实和html里的超链接a差不多,我们实现跳转可以通过标签实现,也可以通过js实现,下面一一演示给大家看一下。
在展示demo前,我们需要先简单的建好项目文件夹做好准备。如下:
-
标签实现
小程序里面有一个类似于a标签的navigator标签,用来做跳转处理。
index页面:
-
<navigator url="../navigator/navigator?title=我是navi">跳转到新的页面</navigator>
-
<navigator url="../redirect/redirect?title=我是red" redirect>跳转到当前页面</navigator>
navigator页面和redirect页面:
-
<view> {{title}} </view>
navigator.js页面和redirect.js页面:
-
Page({
-
data:{
-
title:''
-
},
-
onLoad:function(options){
-
// 页面初始化 options为页面跳转所带来的参数
-
this.setData({
-
title:options.title
-
})
-
},
-
})
而跳转也分为两种,一是跳转到新页面url后面的路径并可以携带参数,一种是在后面加上redirect,在当前页面打开,并携带参数。
注意:为了不让用户在使用小程序时造成困扰,我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
tips:所跳转的页面一定不要忘了在app.json里配置哟,否则会报错。
2. js实现
用js实现只需要写上跳转代码即可,其它如上。
-
wx.navigateTo({
-
url: '../navigator/navigator?title=我是navi'
-
})
-
wx.redirectTo({
-
url: '../redirect/redirect?title=我是red'
-
})
tips:仔细观察下面图片会发现,跳转到其他页面会带有返回按钮,在当前页面打开则不会有。 图片展示:
第二部分:Tabbar显示和隐藏的秘密:分享者王章龙,原文地址
对Tabbar 的用法的理解总结下来分这几个阶段:
第一阶段:在 app.json 中配置
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首页"
}, {
"pagePath": "pages/logs/logs",
"text": "日志"
}]
}
出现问题:有些页面不想有tabBar,如:在首页发现没有身份信息,跳转到登录页时仍然有TabBar。
第二阶段:只有一级页面才会出现Tabbar ,所谓的一级页面就是Tabbar里定义的页面
如果此页面没有在Tabbar里定义,不会显示TabBar的
问题依然存在,登录页依然存在TabBar。
第三阶段:如果从一级页面 redirectTo到其他页面,及时其他页面没有在 TabBar定义的列表里也会显示TabBar
最终解决问题的方法是,加入当前也是一级页面,到希望跳转到的页面不要有Tabbar时,不要使用 redirectTo而是使用 navigateTo