一、uni-app页面跳转,跳转传参,参数过长处理
官方API: uni-app官网
1、uni.navigateTo 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
注意:页面跳转再back回来的时候,触发单页onShow,页面不重载,可保持原页状态。
例:uni.navigateTo({ url: '/pages/adult/inConsent' })
对应url是在pages.json中配置的路由。
2、uni.redirectTo 关闭当前页面,跳转到应用内的某个页面。
注意:用法同上;重定向后原页将关闭,再去进去触发单页onLoad,页面重载。
3、uni.switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
注意:由tabBar切换跳转的页面,要回该页必须使用uni.switchTab,使用uni.navigateBack无效。
例:uni.switchTab({ url: '/pages/adult/adultInfo' })
对应url是在pages.json中配置的路由。
4、跳转传参:短参使用类似get的传参方法;长参使用encodeURIComponent。
短参:
// 跳转传参
uni.navigateTo({ url: '/pages/practice/randomPractice?id=1&name=uniapp' })
// 页面onLoad接受参数
export default {
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
console.log(option.id); //打印出上个页面传递的参数。
console.log(option.name); //打印出上个页面传递的参数。
}
}
长参:
// 浏览视频
const video = {
nam: item.nam,
url: url,
img: item.cover != null ? (this.$global.FileUrl + item.cover) : '',
id: item.id
}
// 跳转传参
uni.navigateTo({
url: '/pages/search/playVideo?video=' + encodeURIComponent(JSON.stringify(video))
})
// 页面onLoad接受参数
onLoad(option) {
// 获取视频信息
const video = JSON.parse(decodeURIComponent(option.video))
this.title = video.nam
this.url = video.url
this.img = video.img
// 设置小程序页面标题 为视频标题
uni.setNavigationBarTitle({ title: this.title })
}
二、uni-app设置获取缓存
官方API:uni-app官网
1、首先移动端与浏览器不同,不存在cookie/session,移动端只有实体缓存localstorage;
2、同步设置获取缓存(实体)的API:
设置 uni.setStorageSync(KEY,DATA)
获取 uni.getStorageSync(KEY)
uni.setStorageSync('storage_key', 'hello');
uni.setStorageSync('zone', { updateTime: new Date(), zoneTree: zoneTree })
uni.getStorageSync('storage_key') // 获取的是字符串
uni.getStorageSync('zone') // 获取的是map对象