微信小程序:详情页请求不同数据的实现原理

微信小程序:详情页请求不同数据的实现原理,第1张

如图所示是接下来需要完成的效果:

页面结构:2个, index (首页)以及 details (详情页),首页是产品列表,点击产品后进入对应的详情页。

首页的wxml结构:

首页的js数据:

对于详情页请求数据,核心在于点击对应产品然后请求对应的产品数据,因此这里的 navigator 组件跳转的url至关重要,这里的 /pages/details/detailsgoodsId={{index} 是模拟了后台提供的数据接口,后面的 goodsId 作为产品的辨识符,当点击之后可以获取到当前点击的是哪个产品,以供详情页进行请求数据。

详情页wxml结构:

详情页js数据:

详情页请求数据的重点在于生命周期函数, onLoad 函数,它可以在页面加载的时候进行触发,并可以通过参数获取到跳转链接上面的辨识符,也就是通过 onLoad 函数中的 options ,获取到了刚才在 indexwxml 页面url中的辨识符: goodId ;

通过它可以获取到对应的产品数据,再将数据进行修改更新到详情页结构 detailswxml 即可。

本案例中跨页面传递数据主要是利用了URL传值,在另外一个页面中接收,并将数据渲染到页面中,这个过程就需要用到生命周期函数:onLoad函数。

其实直接调用wxuploadFile方法就可以了,下面以微信小程序内容安全接口>

如果当前界面通过 查询事件单条数据查询事件 获得了某个数据模型,那么该界面的 组件则可以通过 数据传递 接收数据模型中的类型字段。

选中 组件

展开 检查器-数据绑定及设置 面板

数据传递 菜单中选择 事件模型字段

1、传递参数为对象格式

若参数为对象则需先使用 JSONstringify()进行转换 , 接收后使用JSONparse()转为对象

但这样传参有一个问题,当对象数据长度过大时会报错,因为url传参时程序把过长的那段数据给截取掉了,导致数据转换回来时格式不对而报错。

2、传递参数中含有 = &等特殊字符

若传递参数中含有=,,&等特殊字符,无法正常传递参数,则需要进行编码解码。

解决:

这时可以再添加另一个API:encodeURIComponent(obj) 和 decodeURIComponent(optionsobj),在encodeURIComponent之前要用JSONstringify()先转换数据,decodeURIComponent之后再用JSONparse()转换回来。

encodeURIComponent(JSONstringify(obj)) 为跳转url时的转换方法。

JSONparse(decodeURIComponent(optionsobj)) 为接收参数页面的转换方法。

例如:

以上就是关于微信小程序:详情页请求不同数据的实现原理全部的内容,包括:微信小程序:详情页请求不同数据的实现原理、微信小程序POST怎么传递FormData格式的数据、使用Towify制作小程序时配置图片时,如何设置接收数据传递数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10065293.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)