【微信小程序-原生开发】实用教程17 - 详情页触发列表页刷新,点击图片放大预览,转发给好友/群,分享到朋友圈

简介: 【微信小程序-原生开发】实用教程17 - 详情页触发列表页刷新,点击图片放大预览,转发给好友/群,分享到朋友圈

需先完成详情页

【微信小程序-原生开发】实用教程16 - 查看详情(含页面跳转的传参方法–简单传参 vs 复杂传参)_朝阳39的博客-CSDN博客

https://blog.csdn.net/weixin_41192489/article/details/129363447

详情页触发列表页刷新

需求描述:

在详情页进行点赞/收藏操作,再返回到列表页,发现列表页并没有同步更新点赞/收藏的状态。

解决方案:

在详情页执行任何触发列表页展示内容的数据更新时,都同步执行列表页的刷新

代码实现:

因列表页通常为详情页的上一页,所以详情页触发列表页的刷新实际上是触发上一页的刷新,代码如下:

详情页

  // 收藏
  collect: function (e) {
    let that = this
    let detail = e.currentTarget.dataset.detail
    let id = detail._id
    let collectList = detail.collectList || []
    collectList.push(this.data.userInfo.No)

    db.doc(id).update({
      data: {
        collectList: collectList
      }
    }).then(
      res => {
        wx.showToast({
          title: '收藏成功',
        })

        that.data.detail.collectList = collectList
        that.data.detail.collected = collectList.includes(that.data.userInfo.No)
        that.setData({
          detail: that.data.detail
        })
        // 更新列表页
        that.updateList()
      }
    )
  },
  // 更新列表页
  updateList() {
    // 获取到当前小程序打开的所有页面栈(数据机构为数组)
    let pages = getCurrentPages();
    // 获取到上一页的页面实例(通过下标获取)
    let prevPage = pages[pages.length - 2]
    // 执行上一页的下拉刷新方法,刷新列表
    prevPage.init()
  },

列表页

    // 初始化
    init: function () {
      this.setData({
        currentPage: 1, // 初始化页码为第1页
        dataList: [], // 清空列表数据
        noMore: false // 重置无更多数据
      })
      // 重新加载列表
      this.getList()
    },

效果预览

点击图片放大预览

如点击头像放大预览

<t-avatar bindtap="previewImage" data-url="{{detail.avatarUrl}}" wx:if="{{detail.avatarUrl}}" image="{{detail.avatarUrl}}" />
  //预览图片
  previewImage: function (e) {
    let url = e.currentTarget.dataset.url;
    wx.previewImage({
      current: url,
      urls: [url]
    })
  },

转发给好友/群

  // 点击右上角转发分享给好友/群
  onShareAppMessage() {
    let id = this.data.id
    return {
      title: this.data.detail.nickname,
      path: '/pages/components/friend/detail/index?id=' + id
    };
  }

当页面内容需要必要的参数才能正常显示时,一定记得参照上述代码添加

分享到朋友圈

  // 点击右上角转发分享给朋友圈
  onShareTimeline() {
    return {
      title: this.data.pageTitle,
      query: 'id=1',
      imageUrl: 'https://ucc.alicdn.com/images/user-upload-01/dc89dd3208f546f4bcfbde2240153a24.jpeg'
    }
  }

  • title 为分享到朋友圈时的文字
  • query 为加载页面必要的参数
  • imageUrl 为分享到朋友圈的配图

query 传递的参数,在onload中可以获取

  onLoad(e) {
    console.log(e.id) // 打印 1
 }

若需访问云数据库,请参考下方专题博文


【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)_朝阳39的博客-CSDN博客

https://blog.csdn.net/weixin_41192489/article/details/129830020

目录
相关文章
|
2月前
|
小程序 JavaScript Java
微信小程序的后端开发需要使用什么语言?
【8月更文挑战第22天】微信小程序的后端开发需要使用什么语言?
310 65
ly~
|
6天前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
38 6
|
6天前
|
JSON 小程序 前端开发
创建一个属于自己的小程序(注册开发账号)
介绍如何创建微信小程序账号,包括注册流程、下载安装微信开发者工具、创建项目以及项目结构介绍。
创建一个属于自己的小程序(注册开发账号)
ly~
|
6天前
|
开发框架 小程序 前端开发
抖音小程序的开发难度大吗?
抖音小程序的开发难度因人而异,主要取决于开发者经验、技能及功能需求。技术上需掌握前端技术及抖音开发框架,了解平台生态与规则;设计上需符合用户审美和习惯,具备创新性和实用性。此外,严格的审核标准和激烈的市场竞争增加了开发难度,开发者需制定有效推广策略并持续优化小程序以保持竞争力。
ly~
37 4
|
6天前
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
|
2月前
|
小程序 JavaScript
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
本文介绍了使用 Taro 和 Vue 创建轮播组件的两种方法:一是通过 `&lt;swiper&gt;` 实现,二是利用 Nut UI 的 `&lt;nut-swiper&gt;` 组件实现。
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
|
26天前
|
移动开发 小程序 JavaScript
uni-app开发微信小程序
本文详细介绍如何使用 uni-app 开发微信小程序,涵盖需求分析、架构思路及实施方案。主要功能包括用户登录、商品列表展示、商品详情、购物车及订单管理。技术栈采用 uni-app、uView UI 和 RESTful API。文章通过具体示例代码展示了从初始化项目、配置全局样式到实现各页面组件及 API 接口的全过程,并提供了完整的文件结构和配置文件示例。此外,还介绍了微信授权登录及后端接口模拟方法,确保项目的稳定性和安全性。通过本教程,读者可快速掌握使用 uni-app 开发微信小程序的方法。
57 3
|
2月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,设置转发分享
本文介绍了Taro中`useShareAppMessage`的使用方法,需在页面配置`enableShareAppMessage: true`并重新编译。
Taro@3.x+Vue@3.x+TS开发微信小程序,设置转发分享
|
2月前
|
小程序 数据安全/隐私保护
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
在 `src/http` 目录下创建 `request.ts` 文件,并配置 Taro 的网络请求方法 `Taro.request`,支持多种 HTTP 方法并处理数据加密。
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
|
2月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,上传文件
本文介绍如何在Taro项目中使用Nut UI的`&lt;nut-uploader/&gt;`组件实现图片上传功能,并通过示例代码展示了自定义上传逻辑的方法。
Taro@3.x+Vue@3.x+TS开发微信小程序,上传文件
下一篇
无影云桌面