微信小程序-留言板功能开发(无服务器)
代码网址:
前言 2020/8/28 更新 更新介绍 详细说明 1.消息注释的逻辑实现
使用变量来控制调用的函数,并在记录中添加一个list()来保存评论记录。无论是对主消息的评论,还是对某条消息的评论,都会被添加到消息记录中。时间顺序添加在列表的最后,即从早上到晚上。展示。更新数据时,无论是加评论还是点赞,都是直接更新整个数组。
2、组件高度和宽度的问题
组件高宽问题主要是真机调试时留言板比例不合适=>
问题是:rpx作为基本单位,被定义为根据屏幕宽度自适应。这导致无法实现真正的自适应高度。不同型号的长宽比不同,DPR仅实现宽度自适应。解决该问题的方法是调用wx..获取可用的屏幕高度,并乘以一定的系数来设置留言板的高度。
3.js控制wxss
js无法直接控制样式,但是可以通过设置文本wxml并使用数据绑定{{}}来控制样式,如下代码所示
# javascript 的代码 var commentStyle:"height: 0px; bottom:-1200px;" # wxml处的代码
下一个目标
1、代码添加和小程序绑定代码相关注意事项。小程序注册[1]和开发者工具下载网站[2]提交的代码都是自己编写的代码,但在项目初始化时,开发者工具会自动提供部分参考代码。使用时请酌情过滤。另外,上传过程中可能会漏掉一些代码,导致程序无法正常运行。请告诉我。谢谢。创建项目时需要勾选“云开发项目”。请参阅官方模板设计以保存在云开发中。具体云开发功能部署参见[3];如果您打算本地调试,则需要初始化npm,且位置应在对应的云函数文件夹下。详情参见[4]小程序绑定
1.您需要在小程序-小程序管理中创建公众号并与小程序绑定。
2、目前我的公众号发布图文消息。您可以在创建过程中添加小程序。
3、公众号提供的展示方式包括文字、图片、小程序卡片、小程序代码。我建议使用文本注释来编写消息。图为小程序卡片展示方式
4. 绑定过程中会提示添加小程序页面路径。请使用/post//?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(提出并回答自己的问题)
问:未来会更新哪些功能?
A:我们会考虑长按评论来触发选择、复制、删除自己的评论等功能。
问:目前留言板有什么明显的问题吗?
答:目前留言板还存在很多问题。例如,消息的排序顺序仍然需要考虑;在测试过程中可以发现,有时加载消息的速度很慢,让用户感觉没有人留言。这是一个大问题。
问:您能简单介绍一下整个方案的实现流程吗?
A:主要说一下留言板的整个实现功能。用户进入小程序后,程序会去云端数据库查找是否存在对应的集合。如果存在,它将读取它。如果不存在,则会创建并初始化一条注释;评论发布时间按照从最新到最新的顺序排序(初始评论时间设置为2021年,所以永远在最前面)。用户发布消息后,会直接调用云函数将新发布的内容同步到云数据库,但点赞的同步会在用户退出小程序后进行。
4. 声明
这是我的第一个网络相关的项目,很多都是基于网上的资料,所以我要感谢所有帮助过我的人,也希望能为有需要的人尽一份力。如果我可以帮助您解决任何问题,我会尽力帮助您。欢迎您在这里提及或通过电子邮件与我联系。谢谢你!
访问者可以将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业或非营利目的,但同时必须遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权益。此外,将本网站任何内容或服务用于其他目的时,必须获得本网站及相关权利人的书面许可,并支付报酬。