首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小程序云开发实战七:云开发首页列表跳转详情页

小程序云开发实战七:云开发首页列表跳转详情页

作者头像
王小婷
发布2025-05-18 16:04:12
发布2025-05-18 16:04:12
13400
代码可运行
举报
文章被收录于专栏:编程微刊编程微刊
运行总次数:0
代码可运行
5640239-e3be855bec0b62ca.png
5640239-e3be855bec0b62ca.png

1:实战六之中,列表页已经完成,现在新建一个详情页,打开app.json,"pages/details/details",,自动生成了一个详情页

5640239-bf1cc83db4af3fdd.png
5640239-bf1cc83db4af3fdd.png

2:打开首页列表页代码,绑定详情按钮跳转事件 wxml:

代码语言:javascript
代码运行次数:0
运行
复制
<view wx:for="{{book_list}}">
  <van-card num="2" price="{{item.price}}" desc="{{item.author}}" title="{{item.title}}" thumb="{{item.image }}">
    <view slot="footer">
      <van-button size="mini" bind:click="viewitem">详情按钮</van-button>
    </view>
  </van-card>
</view>
5640239-d006e2c161252df4.png
5640239-d006e2c161252df4.png

3:继续写js里面的绑定事件,在控制台打印一下event,方便后续测试

代码语言:javascript
代码运行次数:0
运行
复制
  viewitem: function(event) {
    console.log(event)
  }
5640239-fbcbeac743949484.png
5640239-fbcbeac743949484.png

4:如何知道要跳转列表图书中的哪个详情页?要在云开发里面写一个特定的id,打开云开发控制台,数据库,需要用到这个下划线是_id的字段

5640239-9d026738bfd519da.png
5640239-9d026738bfd519da.png

5:给这个字段设置一个值,data-id="{{item._id}}"

5640239-e46400c60cf0c5f7.png
5640239-e46400c60cf0c5f7.png

图片.png

点击按钮,可以看到,点击不同的列表,打印的是不同的id,通过不同的id就可以看到不同的内容了。

5640239-169f6ba41b9ac959.png
5640239-169f6ba41b9ac959.png

6:下面实现点击详情按钮跳转详情页面,看到想要的具体的内容,看完控制台,因为具体数据是来自于event,currentTarget

5640239-f75fbf9e96818a14.png
5640239-f75fbf9e96818a14.png

所以js里面声明一下

代码语言:javascript
代码运行次数:0
运行
复制
 var id = event.currentTarget.dataset.id;
5640239-d8ffef1eb2deec6c.png
5640239-d8ffef1eb2deec6c.png

并且写好跳转页面的跳转方法和url,带参数跳转

7:在detail.js的onLoad方法里面打印接收到的参数

5640239-89ea9999d553a3e5.png
5640239-89ea9999d553a3e5.png

8:测试,列表界面带参数跳转成功

5640239-719d053f54c524c9.png
5640239-719d053f54c524c9.png

分割线======分割线=======分割线=======分割线

开始写详情页的一些代码

1:初始化db的实例

代码语言:javascript
代码运行次数:0
运行
复制
const db = wx.cloud.database({});
5640239-5f8790d306a4373a.png
5640239-5f8790d306a4373a.png

2:打开云函数文档里面的读取数据apihttps://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/read.html 复制此段读取数据记录的代码,放在onload里面

5640239-711d529ffdde21ab.png
5640239-711d529ffdde21ab.png
代码语言:javascript
代码运行次数:0
运行
复制
   onLoad: function (options) {
   // console.log(options)
    db.collection('books').doc(options.id).get({
      success(res) {
        // res.data 包含该记录的数据
        console.log(res.data)
      }
    })
  },

可以看到,具体数据已经打印过来了

5640239-e9339b6c6e447c3a.png
5640239-e9339b6c6e447c3a.png

图片.png

这个时候还没有将数据传递到一个具体的页面实例中

5640239-6e0c13d24616ee64.png
5640239-6e0c13d24616ee64.png

所以,success开始改成使用箭头函数

代码语言:javascript
代码运行次数:0
运行
复制
// pages/details/details.js
const db = wx.cloud.database({});
Page({
  /**
   * 页面的初始数据
   */
  data: {

  },
  onLoad: function (options) {
    //  console.log(options)
    db.collection('books').doc(options.id).get({
      success: res => {
        console.log(res.data)
        this.setData({
          book: res.data
        })
      }
    })
  },
})

ok,进入页面的时候,可以看到appdata里面的book

5640239-6846eff83c7bd9ba.png
5640239-6846eff83c7bd9ba.png

3:具体展示 在wxml里面写上想要拿到的数据,ok,详情页面展示的数据

5640239-d94b74747a2da599.png
5640239-d94b74747a2da599.png

4:效果如下

5640239-9a704da7af23c33c.gif
5640239-9a704da7af23c33c.gif

原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1 90后前端妹子,爱编程,爱运营,爱折腾。 坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,对于博客上面有不会的问题

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始写详情页的一些代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档