当前位置:网站首页>微信小程序中的路由跳转
微信小程序中的路由跳转
2022-07-07 04:02:00 【richest_qi】
文章目录
前情提要
微信小程序中支持路由跳转的常用API有,
wx.navigateTo()
,保留当前页面,跳转到应用中的某个页面。但是,不能跳转到tabbar页面。wx.redirectTo()
,关闭当前页面,跳转到应用内的某个页面。wx.reLaunch()
,关闭所有页面,打开应用中的某个页面。wx.switchTab()
,跳转到tabbar页面,并关闭其他所有非tabbar页面。
小程序项目
代码涉及的主要文件有:
- app.json
- app.wxss
- pages/home/home.wxml
- pages/home/home.json
- pages/camera/camera.wxml
- pages/camera/camera.json
- pages/user/user.wxml
- pages/user/user.json
- pages/login/login.wxml
- pages/login/login.json
- pages/login/login.wxss
- pages/login/login.js
主体
app.json
{
"pages": [
"pages/home/home",
"pages/camera/camera",
"pages/user/user",
"pages/login/login"
],
"window": {
"navigationBarBackgroundColor": "#0149af",
"navigationBarTitleText": "首页",
"navigationBarTextStyle": "white"
},
"tabBar": {
"color": "#0149af",
"selectedColor": "#0149af",
"list": [{
"pagePath": "pages/home/home",
"text": "首页",
"iconPath": "/static/images/tabIcons/homepage.png",
"selectedIconPath": "/static/images/tabIcons/homepage_fill.png"
},{
"pagePath": "pages/camera/camera",
"text": "相册",
"iconPath": "/static/images/tabIcons/camera.png",
"selectedIconPath": "/static/images/tabIcons/camera_fill.png"
},{
"pagePath": "pages/user/user",
"text": "个人中心",
"iconPath": "/static/images/tabIcons/people.png",
"selectedIconPath": "/static/images/tabIcons/people_fill.png"
}]
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}
app.wxss
.container{
margin: 40rpx;
padding: 40rpx;
height: 600rpx;
background:#a3c8f8;
border-radius: 6rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 48rpx;
color: #fff;
}
首页(pages/home)
pages/home/home.wxml
<view class="container">
首页
</view>
相册(pages/camera)
pages/camera/camera.wxml
<view class="container">
相册
</view>
pages/camera/camera.json
{
"navigationBarTitleText": "相册"
}
个人中心(pages/user)
pages/user/user.wxml
<view class="userContainer">
<image src="/static/images/vistor.png"></image>
<view class="name">游客</view>
<view class="text" bindtap="handleTap">去登录?</view>
</view>
pages/user/user.json
{
"navigationBarTitleText": "个人中心"
}
登录(pages/login)
pages/login/login.wxml
<view class="loginContainer">
<view class="title">登录</view>
<view class="list">
<view class="item">
<input type="text" data-type="username" bindinput="handleInput" placeholder="用户名" />
</view>
<view class="item">
<input type="text" password data-type="password" bindinput="handleInput" placeholder="密码" />
</view>
</view>
<button size="mini" bindtap="login">登录</button>
</view>
pages/login/login.json
{
"navigationBarTitleText": "登录"
}
pages/login/login.wxss
.loginContainer{
padding: 20rpx;
}
.loginContainer .title{
padding: 20rpx 0;
border-bottom: 1px solid #ddd;
font-weight: bold;
font-size: 32rpx;
}
.list{
margin: 40rpx auto 20rpx;
}
.item{
margin: 12rpx 0;
padding: 0 20rpx;
border: 1px solid #ddd;
border-radius: 6rpx;
}
.item input{
width: 100%;
height: 60rpx;
font-size: 28rpx;
}
button{
font-weight: normal;
font-size: 28rpx!important;
color: #fff;
background: #0149af;
}
pages/login/login.js
Page({
data:{
username:"",
password:""
},
handleInput(e){
const type = e.target.dataset.type;
this.setData({
[type]:e.detail.value
})
},
login(){
const {
username,password} = this.data;
if(!username){
wx.showToast({
title: '请输入您的用户名',
icon:'error'
})
return;
}
if(!password){
wx.showToast({
title: '请输入您的密码',
icon:'error'
})
return;
}
wx.showToast({
title: '登录成功',
success:() => {
setTimeout(() => {
wx.switchTab({
url: '/pages/user/user',
})
},300)
}
})
/** * 报错:navigateTo:fail can not navigateTo a tabbar page */
// wx.navigateTo({
// url: '/pages/user/user',
// })
}
})
相关链接
边栏推荐
- 软件验收测试
- Wechat applet full stack development practice Chapter 3 Introduction and use of APIs commonly used in wechat applet development -- 3.9 introduction to network interface (IX) extending the request3 met
- 在线直播系统源码,使用ValueAnimator实现view放大缩小动画效果
- 外包干了四年,废了...
- 1090: integer power (multi instance test)
- 点亮显示屏的几个重要步骤
- 抽絲剝繭C語言(高階)數據的儲存+練習
- Mobx knowledge point collection case (quick start)
- 4、 High performance go language release optimization and landing practice youth training camp notes
- nacos
猜你喜欢
Jenkins远程构建项目超时的问题
Advanced practice of C language (high level) pointer
Outlier detection technology of time series data
MIPS uclibc cross compile ffmpeg, support g711a encoding and decoding
Tencent's one-day life
At the age of 20, I got the ByteDance offer on four sides, and I still can't believe it
Composition API premise
2、 Concurrent and test notes youth training camp notes
Kuboard无法发送邮件和钉钉告警问题解决
Leetcode-206. Reverse Linked List
随机推荐
計算機服務中缺失MySQL服務
按键精灵脚本学习-关于天猫抢红包
[2022 CISCN]初赛 web题目复现
A concurrent rule verification implementation
一、Go知识查缺补漏+实战课程笔记 | 青训营笔记
抽丝剥茧C语言(高阶)数据的储存+练习
Rxjs - observable doesn't complete when an error occurs - rxjs - observable doesn't complete when an error occurs
Bi she - college student part-time platform system based on SSM
Project practice five fitting straight lines to obtain the center line
@component(““)
Outsourcing for four years, abandoned
詳解機器翻譯任務中的BLEU
Chinese and English instructions prosci LAG-3 recombinant protein
Non empty verification of collection in SQL
Pass child component to parent component
Communication between non parent and child components
ROS2规划系统plansys2简单的例子
07_ Handout on the essence and practical skills of text measurement and geometric transformation
抽丝剥茧C语言(高阶)指针的进阶
Fast quantitative, abbkine protein quantitative kit BCA method is coming!