微信小程序跳转详情页面
Vue酱 人气:0我们要实现如下的效果,进入详情页,获取产品的具体数据。本文请求的数据是本地的,实际开发是要通过ajax请求服务器中的产品数据,为了避免业务代码扰乱视听,只截取了关键代码
1.首先我们需要两个页面,一个首页(就是产品列表页),一个详情页(产品的具体数据页)
首页wxml代码:
这里举例的是传id到详情页,这样详情页才知道我们需要加载的是哪个产品,也可以传index下标,不过感觉id更靠谱些。(id是你产品列表里面的数据,渲染列表时拿到的)
<!-- bindtap绑定的是首页跳转函数, data-XX="这里绑定的是要传到详情页的数据" (这里的传的id) --> <view bindtap="skipTravelDetails" data-id="{{id}}"> <view> <image src="{{article.imgArray[0]}}"/> </view> </view>
2.首页js代码:
skipTravelDetails:function(e){ let id=e.currentTarget.dataset.id //获取点击产品时拿到的id,就是data-id传过来的值 // wx.navigateTo跳转页面的方法 //URL是传递的是详情页的路径,把id拼接传过去就可以啦 wx.navigateTo({ url: "./sonPage/details?id="+id, }) }
3.详情页wxml代码:
这里面就是你想要生成的页面内容,数据的显示,结构按需求自己写~
<!-- photoImg就是需要渲染的数据 --> <view> <image src="{{photoImg}}" /> </view>
4.详情页js代码:
data: { phptoImage: "",//匹配的数据 imgList: [{ id: 1, images: ["/images/a.jpg", "/images/chengDu.jpg", "/images/ac.jpg"] }, { id: 2, images: ["/images/chengDu.jpg", "/images/a.jpg"] }, { id: 3, images: ["/images/chongQing.jpg", "/images/chengDu.jpg"] } ] // 本地数据 }, onLoad: function (options) { // options.id 就是首页传过来的id,接下来循环找到id所匹配的数据就可以进行渲染啦! this.data.imgList.forEach(item => { if (options.id == item.id) { this.setData({ phptoImage: item.images }) } }) },
总结:整个操作就一个点击bindtap点击事件,和详情页onload生命周期函数就可以实现啦,它在页面加载的时候进行触发,并可以通过(options)参数获取到跳转链接上面的辨识符(id),再通过(this.setData)把值(photoImage)更新显示就完成了。
加载全部内容