小程序页面不跳转进行传参

小程序不使用路由传参

今天在写小程序详情页对购物车传输数据的时候遇到一些问题,再此做个总结

问题:当我们在小程序某一个页面需要对指定的页面添加数据而不进行跳转,也是很苦恼,相对vue直接可以使用vuex很便捷。对小程序知之甚少,在网上寻找了一些资料也有了点头绪。
解决办法:小程序本地存储
小程序的本地存储使用方法与h5的存储方法本质上没有什么区别,通过key名保存当前的数据,在指定的页面利用key取出数据并保存在data对象里。

在这里通过setStorage对数据进行保存

wx.setStorage({ 
  key:"key",
  data:"value"
})

取出时使用的方法

wx.getStorage({
  key: 'key',
  success (res) {
    console.log(res.data)
  },
  fail(err){
  	console.log(err)
  },
  complete(data){
  	console.log(data)
  }
})

成功取到数据会调用success方法,如果没有数据则调用fail方法,complete方法不管是否取到数据都会进行调用。

wx.clearStorage()

清空本地存储

wx.removeStorage({
  key: 'key',
  success (res) {
    console.log(res)
  }
})

可以删除指定的key,相对应的value也被移除。

### 微信小程序页面跳转传递参数的方法 在微信小程序中,可以通过`wx.navigateTo`方法来实现在页面跳转的同时传递参数。对于简单的数据类型可以直接附加到URL后面作为查询字符串的一部分;而对于复杂的数据结构(如对象),则需先将其序列化为JSON字符串再进行传输。 #### 基本语法 当需要从一个页面导航至另一个新页面时,可调用如下API: ```javascript wx.navigateTo({ url: '目标页面路径?参数名1=值1&参数名2=值2...' }) ``` 其中,“?”之后的部分即是要发送给下一个页面的信息[^3]。 #### 实际案例展示 假设有一个列表页想要链接到详情页,并且希望把选中的项目信息一并带给后者处理,则可以在触发事件处理器内完成此操作: ```javascript // 列表项点击响应函数 function onItemTap(e){ let itemIndex = e.currentTarget.dataset.index; // 获取当前项目的详细资料 let selectedItemInfo = JSON.stringify(this.data.items[itemIndex]); // 执行页面切换动作并向目的地址追加所需携带的数据 wx.navigateTo({ url:`../detail/detailPage?itemData=${selectedItemInfo}` }); } ``` 上述代码片段展示了如何通过`JSON.stringify()`方法将JavaScript对象转换成JSON格式字符串以便于附着在请求链接上[^4]。 而在接收端——也就是被访问的目标页面中,应当重写其默认加载行为以读取这些传入的变量: ```javascript Page({ onLoad:function(option){ try { // 解析接收到的对象形式参数 this.setData({ receivedObject : JSON.parse(decodeURIComponent(option.itemData)) }) } catch(error) {} // 对其他简单类型的参数做相应处理... } }); ``` 这里利用了`decodeURIComponent()`解码可能存在的特殊字符编码问题,确保能正确解析原始数据[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值