【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)

简介: 【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)

开始前,请先完成圆梦宝典中滚动公告栏的开发,详见

【微信小程序-原生开发】实用教程 08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏_朝阳39的博客-CSDN博客

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

需求描述

为了让首页展现更多功能,我们添加了可滚动的选项,实现首页内容的无限拓展和切换。

可滚动选项

pages\index\index.wxml

<t-tabs space-evenly="{{false}}" sticky defaultValue="{{defaultIndex}}" theme="tag" bindchange='indexChange'>
  <t-tab-panel wx:for="{{tabList}}" wx:key="index" label="{{item.label}}" value="{{item.index}}" />
</t-tabs>
  • sticky 页面下滑时,让选项自动悬浮在顶部
  • space-evenly="{{false}}" 取消选项均分空间
  • theme="tag" 使用标签样式

详细文档见

https://tdesign.tencent.com/miniprogram/components/tabs?tab=api

pages\index\index.json

    "t-tabs": "tdesign-miniprogram/tabs/tabs",
    "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",

pages\index\index.js

data 中新增变量

    currentIndex: 1,
    defaultIndex: 1,
    tabList: [{
        index: 0,
        label: '新年贺词'
      },
      {
        index: 1,
        label: '动态'
      },
      {
        index: 2.1,
        label: '电视剧'
      },
      {
        index: 2.2,
        label: '电影'
      },
      {
        index: 2.3,
        label: '音乐'
      },
      {
        index: 3,
        label: '美食'
      },
      {
        index: 4,
        label: '美景'
      },
      {
        index: 5.1,
        label: '书籍'
      },
      {
        index: 5.2,
        label: '课程'
      },
    ]
  // 切换选项
  indexChange: function (e) {
    this.setData({
      currentIndex: e.detail.value
    })
  },

动态列表(步骤条)

此处仅借用步骤条组件的样式,并无步骤跳转的功能

pages\index\index.wxml

要点详见代码中的注释

<!--  wx:if 根据 currentIndex 值渲染对应选项的内容  -->
<view wx:if="{{currentIndex===1}}" class="stepBox">
  <!-- current 属性为数据长度,以便高亮显示所有步骤 -->
  <t-steps layout="vertical" readonly theme="dot" current='{{infoList.length}}'>
    <t-step-item wx:for="{{infoList}}" wx:key="index" title="{{item.date}}">
      <!-- 插槽 extra -- 自定义每个步骤中的内容 -->
      <!-- 通过自定义属性 data-id 实现事件传参 -->
      <view slot="extra" class="contentBox" bindtap="gotoDetail" data-id="{{item._id}}">
        <view>
          {{item.title}}
        </view>
        <view>
          {{item.publisher}}
        </view>
      </view>
    </t-step-item>
  </t-steps>
</view>

pages\index\index.wxss

/* 动态(步骤条)样式 */
.stepBox {
  padding: 40rpx;
}
.contentBox {
  display: flex;
  justify-content: space-between;
  color: grey;
}


pages\index\index.json

    "t-steps": "tdesign-miniprogram/steps/steps",
    "t-step-item": "tdesign-miniprogram/step-item/step-item",
    "t-icon": "tdesign-miniprogram/icon/icon"

pages\index\index.js

要点详见代码中的注释

infoList: [], // data中新增变量--动态列表
 
  // 生命周期--页面加载时执行
  onLoad() {
    // 访问接口,获取动态列表
    wx.cloud.database().collection('message').get().then(
      res => {
        console.log(res)
        this.setData({
          infoList: res.data
        })
      }
    )
  },

此处需在微信云数据库中,新增集合 message ,将数据权限修改为所有用户可读,并添加如下数据:

{"_id":"21f8dd5b63d78070011a4993754bcab0","content":"如果前进的每一步都有有经验的朋友分享避坑路线,会不会让你感觉既幸运又开心呢?  那么,我们是不是也可以分享出自己的经验,帮助到其他朋友呢?  这是每个人都拥有的微光,彼此照亮,便能成就更加美好的人间!","date":"2013-1-29","publisher":"朝阳","title":"生命的微光"}
{"_id":"21f8dd5b63d788c6011b18bb453db82b","publisher":"朝阳","title":"耍完武汉,返回成都","content":"充实欢乐的春节假期结束啦,没了疫情的纷扰,有了女朋友的陪伴,生活日渐鲜亮灿烂了起来,嗨翻   顺利回到成都,新的征程即将开启,明天,你好,我来啦!","date":"2013-1-28"}
  // 查看动态详情
  gotoDetail: function (e) {
    // 通过自定义属性 data-id 获取到 id
    let id = e.currentTarget.dataset.id
    wx.navigateTo({
      // 跳转到新页面。同时携带参数id
      url: '/pages/index/message/detail/index?id=' + id
    })
  },

动态详情

新增了动态详情页面,目录如下:

pages\index\message\detail\index.wxml

<view class="detailBox">
  <view class="titleBox">
    {{msgDetail.title}}
  </view>
  <view class="pubInfoBox">
    <view>{{msgDetail.date}}</view>
    <view>{{msgDetail.publisher}}</view>
  </view>
  <view class="contentBox">
    {{msgDetail.content}}
  </view>
</view>

pages\index\message\detail\index.wxss

.detailBox {
  padding: 40rpx;
}

.titleBox {
  font-weight: bold;
  text-align: center;
  font-size: 60rpx;
}

.pubInfoBox {
  font-size: 30rpx;
  text-align: center;
  color: grey;
  padding: 30rpx;
  display: flex;
  justify-content: space-around;
}

.contentBox {
  /* 文本分散对齐 */
  text-align: justify;
  line-height: 2;
}

pages\index\message\detail\index.json

{
  "navigationBarTitleText": "动态--详情"
}

pages\index\message\detail\index.js

要点详见代码中的注释

Page({
  data: {
    msgDetail:{}
  },
  // 生命周期--页面加载
  onLoad(options) {
    // 获取页面跳转中携带的参数 id
    let id = options.id
    // 通过doc函数,传入 id 查询单条数据的详情
    wx.cloud.database().collection('message').doc(id).get().then(
      res => {
        this.setData({
          msgDetail: res.data
        })
      }
    )
  }
})

目录
相关文章
|
9天前
|
JSON 监控 小程序
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
73 14
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
|
2月前
|
存储 移动开发 小程序
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
136 2
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
|
3月前
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
161 3
|
3月前
|
小程序
微信小程序数据绑定与事件处理:打造动态交互体验
在上一篇中,我们学习了搭建微信小程序开发环境并创建“Hello World”页面。本文深入探讨数据绑定和事件处理机制,通过具体案例帮助你打造更具交互性的小程序。数据绑定使用双花括号`{{}}`语法,实现页面与逻辑层数据的动态关联;事件处理则通过`bind`或`catch`前缀响应用户操作。最后,通过一个简单的计数器案例,巩固所学知识。掌握这些核心技能,将助你开发更复杂的小程序。
|
3月前
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
1月前
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
1月前
|
小程序 关系型数据库 Java
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。
|
2月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
982 11
技术小白如何利用DeepSeek半小时开发微信小程序?
|
2月前
|
小程序 JavaScript 前端开发
微信小程序开发全流程:从注册到上线的完整指南
这篇文章详细记录了微信小程序的完整开发到最终上线的每一个步骤。适合对小程序开发感兴趣的个人开发者或希望了解完整流程的学习者,涵盖了云开发、事件绑定、生命周期管理、组件使用等关键内容。
363 11
|
7月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
1634 7

热门文章

最新文章