微信小程序之云开发--留言板功能开发(免服务器)

2023-10-10 01:20

本文主要是介绍微信小程序之云开发--留言板功能开发(免服务器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

微信小程序–留言板功能开发(免服务器)

github代码网址:igo312

前言

  • 实现了留言板块的开发,可以与公众号绑定,提供公众号一个留言板块

  • 使用腾讯云开发实现数据库等的读取,不再需要租借服务器,只要注册相应的小程序即可

  • 大家可以在这里互相交流,如果需要可以留言创个群互相交流呢

2020/8/28 更新

更新简介

  • 添加了对留言的评论功能与点赞功能的完善
  • 添加了对留言、留言评论删除功能的实现
  • 完善了数据加载逻辑,保证了先获取数据再进行渲染
  • 对组件高宽进行了重新设定
  • 添加了更多功能选项,将评论、点赞、删除进行归纳

详细说明

1.对留言评论的逻辑实现

利用变量控制调用的函数,在记录中添加一个列表(leaveMessage)保存评论记录,无论是在主留言评论还是对某一留言评论都会添加到留言记录中,时间排序为在列表末尾添加即从早到晚展现。在数据更新上,无论是添加评论还是在点赞上,都是直接利用update更新整个数组

2.组件高宽的问题

组件高宽的问题主要为留言板在真机调试中比例不合适的问题=>

问题在于: rpx作为基本单位,其定义是根据屏幕宽度实现自适应。这导致了在高度上其实不能做到真正的自适应,不同机型的长宽比例不同,dpr只实现了宽度 的自适应。在问题的解决上,调用wx.systemInfoSync.windowHeight来获取可使用屏幕高度,乘以一定系数来设定留言板的高度。

3. js控制wxss

js不能直接控制样式,但能通过设置文本wxml,利用数据绑定{{}}实现控制样式如下面的代码

# javascript 的代码
var commentStyle:"height: 0px; bottom:-1200px;"# wxml处的代码
<view id="" class="" style="{{commentStyle}}" animation="">

接下来的目标

  • 实现被评论后用户会得到被回复的消息
  • 加速小程序的加载


1.代码添加与小程序绑定

代码相关注意事项

  1. 小程序注册[1]与开发者工具下载网站[2]
  2. 提交的代码都是自己写的代码,但是在项目初始化时,开发者工具会自动提供部分参考代码。请各位在使用时酌情筛选,另外可能在上传过程中漏掉了部分代码导致程序无法正常运行,请告诉我呢谢谢
  3. 创建项目时需要勾选’云开发 QuickStart 项目’,见官方模版
  4. 设计到云开发保存于cloudfunctions,具体的云开发函数部署见[3];若有意向进行本地调试,需进行npm install的初始化,位置应在相应的云函数文件夹下,具体见[4]

小程序绑定

1.需创建公众号并在小程序-小程序管理进行相应的与小程序绑定

2.目前本人公众号发布的都是图文消息,在创建过程中可加入小程序

3.公众号提供的展示方式有文字图片小程序卡片小程序码,本人建议使用文字注释为写留言即可。图片为小程序卡片展示方式

4.在绑定过程中会提示添加小程序页面路径,请使用pages/post/comment/comment?idx=(输入你自己的编号)进行绑定

在这里插入图片描述

2.代码模块解释

  |- miniprogram|---- data:在使用云函数前的数据提供端(现可删除)|---- images:提供了相应的图标与图片|---- item:提供了操作评论内容的接口代码如1.获取缓存内容,2.更新评论缓存,3.调用云函数更新云数据库等|---- pages:除`post`文件夹以外其余为系统自己初始化的内容|---- post:设定了欢迎界面`welcome`以及留言板界面`comment`,剩余两个文件夹未使用|---- welcome:欢迎界面,目前只起欢迎作用,放置公众号的二维码图片|___ comment: 留言板界面(主要功能区域)|---- utils:	提供了时间转换,时间比较(评论顺序的排列),获取用户信息等功能|_ cloudfunctions|---- getComment: 在数据库存在相应的集合读取相应的集合数据|---- initComment: 在数据库不存在时进行初始化集合,初始化会自动添加一条评论并置顶,评论内容可在`miniprogram/item/item-		``post.js/commentFromCloud`中进行修改|---- updateComment: 实现本地评论增加后对数据库的更新。|---- updateUp:实现本地点赞后对数据库的更新|___ login:获取用户的openID功能

3.Q&A(自问自答)

  1. Q:未来还会更新哪些功能呢?

    A:会考虑在某条评论长按触发如选择、复制、删除自己评论的功能

  2. Q:目前留言板还存在什么明显的问题呢?

    A:目前留言板还有许多问题存在,如留言的排序顺序还是要斟酌的;在测试过程中可以发现有时候加载留言的速度较慢会让用户觉得没有人留言,这是一个 很大的问题

  3. Q:能简单介绍整个程序的实现流程么?

    A:主要说说留言板的整个实现功能,用户进入小程序之后,程序会去云数据库寻找是否存在相应的集合,若存在则读取,不存在则进行创建并初始化一条评 论;评论以发布时间从最新到最迟进行排序(初始化评论的时间被设定为2021年,因此目前永远置顶)。用户在发布留言后会直接调用云函数将新发布的 内容与云数据库同步,但点赞的同步将在用户退出小程序后进行

4.申明

这是我第一个web相关的项目,很多都是依靠网上资料实现的,所以感谢所有帮助过我的人,而我也希望我能为需要的人尽绵薄致力,任何问题只要是我能帮到我都会尽力帮助你呢,欢迎在这里提出issues或者联系邮箱syren0925@163.com,谢谢!

访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务用于其他用途时,须征得本网站及相关权利人的书面许可,并支付报酬。

这篇关于微信小程序之云开发--留言板功能开发(免服务器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176930

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php