持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
前言
近期实现了一个类似于贴吧可以聊天回复评论的社区功能(包括点赞等),一般情况下这样做的目的是为了方便不想下载APP的用户,毕竟用户觉得功能不错后才会下载进一步使用。
帖子列表和点赞
列表
列表一般显示的是用户头像、名称、时间、点赞、评论数量、详情,所以先实现帖子该有的布局,创建最外层的view视图加上wx:for的渲染代表是一个帖子
<view class="doctor-list-div" wx:for="{{pageToptic}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="goArticle" data-item="{{item}}">
</view>
列表信息
列表信息,顶部是头像和名称,可以参考其他的布局,中间是帖子的详情,注意~ 头像尽量设置成圆形
<view class="activeTitle">
<view>
<image src="{{item.userIcon}}"></image>
</view>
<view>
<text>{{item.toptic}}</text>
</view>
</view>
</view>
最下边是时间和点赞数量,点赞右侧要有点赞的数量
<view class="icon">
<view catchtap="setGiveUp" data-index="{{index}}">
<image src="'/icon/dianzan_dianji.png"></image>
<text>{{item.giveUpCount}}</text>
</view>
</view>
帖子详情
帖子列表界面只需要请求和渲染即可,点击任意一个即可进入到该详情,这个需要请求接口(和后端商议好),进去后上边是帖子的内容并在顶部带有标题和时间。
<view class="article">
<view class="title">
<text>{{details.toptic}}</text>
</view>
<view class="icon_nickName">
<view class="icon">
<image src="{{details.userIcon}}"></image>
</view>
</view>
<view class="article_content">
<text>{{content}}</text>
</view>
</view>
注意!帖子的标题不能和时间在一平行线内
帖子评论
帖子评论要分一级和二级评论,每个二级评论要展示在一级评论的下方,这样可方便区分,并且可以给一级评论进行点赞
评论列表渲染
注意! 一般情况下,一级二级评论可以有无限个,这就需要用到渲染列表,并且需要把每个二级评论准确的插入到一级评论内,也是说每个一级内都会有一个Children的数组存储二级
<view class="details" wx:if="{{item.childrens.length > 0}}">
<view wx:for="{{item.childrens}}" wx:for-item='childItem' wx:for-index="childIndex">
<text>{{childItem.nickName}}:</text>
<text>{{childItem.content}}</text>
</view>
</view>
判断该children是否为空,进行展示
评论
评论是点击某一个人聊天信息后,即可评论,并且评论后要实时刷新列表,这就需要绑定点击事件获取当前ID,来评论
<view class="comments_input">
<input type="text" placeholder="请输入评论..." focus="{{inputShowed}}" value="{{keyword}}" bindinput="setKeyword"></input>
</view>
<view class="sendMsg">
<view catchtap="sendKeyword" style="color:#999">
<text>发送</text>
</view>
</view>
点击发送后需要把input的输入框收回并清空
最后
评论发布后,刷新评论列表如果当前的数据量比较大,最好做成分页,以免造成影响用户体验~