在微信小程序中,如果要实现在切换页面后原页面状态不变,可以通过以下几种方式来实现:
- // 在app.js中定义全局数据
- App({
- globalData: {
- status: 'default'
- }
- })
在原页面中可以通过getApp()
方法获取到小程序实例,从而访问全局数据。
- const app = getApp()
- Page({
- data: {
- status: null
- },
- onLoad: function () {
- // 获取全局数据并设置到当前页面的data中
- this.setData({
- status: app.globalData.status
- })
- }
- })
- // 在原页面中存储数据到缓存
- wx.setStorageSync('status', 'default');
在切换到新页面后,可以通过wx.getStorageSync()
方法从缓存中获取之前保存的状态数据。
- Page({
- data: {
- status: null
- },
- onLoad: function () {
- // 从缓存中获取数据并设置到当前页面的data中
- this.setData({
- status: wx.getStorageSync('status')
- })
- }
- })
- Page({
- data: {
- status: 'default'
- },
- onHide: function () {
- // 页面隐藏时保存状态到页面栈中
- wx.setStorageSync('status', this.data.status);
- },
- onShow: function () {
- // 页面显示时从页面栈中获取之前保存的状态并更新data
- const status = wx.getStorageSync('status');
- if (status) {
- this.setData({
- status: status
- });
- }
- }
- })
以上是三种常见的实现方式,可以根据具体的需求选择合适的方式来保持原页面状态不变。