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

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

相关文章

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

Mysql 驱动程序的程序小结

《Mysql驱动程序的程序小结》MySQL驱动程序是连接应用程序与MySQL数据库的重要组件,根据不同的编程语言和应用场景,MySQL提供了多种驱动程序,下面就来详细的了解一下驱动程序,感兴趣的可以... 目录一、mysql 驱动程序的概念二、常见的 MySQL 驱动程序1. MySQL Connector

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更