云开发(微信-小程序)笔记(十六)---- 评论

简介: 云开发(微信-小程序)笔记(十六)---- 评论

云开发(微信-小程序)笔记(十五)---- 收藏,点赞(下)

1.引言

在之前编写了收藏,点赞的功能,当然评论这个功能也是不可缺少,这次我们将编写评论的功能。

2.代码编写

2-1.在数据库里添加pinglun字段,并增加内容

评论数据的添加

2-2.在app.json里增加评论的页面

"pages": [
    "pages/pinglun/pinglun",

2-3.编写pinglun.js文件

// pages/pinglun/pinglun.js
let ID = ''
let content = ''
Page({
  data: {
    pinglun: []   //评论数组
  },
  onLoad() {
    ID = 'b69f67c06268c88b005446ac66f0ad09'
    wx.cloud.database().collection('Goods')
      .doc(ID)
      .get()
      .then(res => {
        console.log('详情页成功', res)
        this.setData({
          detail: res.data,
          pinglun: res.data.pinglun
        })
      })
      .catch(res => {
        console.log('请求数据失败', res)
      })
  },
  //获取用户输入的评论内容
  getContent(e) {
    content = e.detail.value
    console.log('获取用户输入的值:', content)
  },
  //发布评论
  getgo() {
    //输入内容不能少于10位
    if (content.length < 10) {
      wx.showToast({
        icon: 'none',
        title: '内容过短!',
      })
        return
      }
      let pinglunItem = {}
      pinglunItem.name = 'catgod'      //评论者
      pinglunItem.content = content    //评论内容
      let pinglunadd = this.data.pinglun
      pinglunadd.push(pinglunItem)
      console.log('添加后的评论:',pinglunadd)
      //调用云函数进行数据的更新
      wx.cloud.callFunction({
        name: 'tubiao',
        data: {
          id: ID,
          action: "pinglun",
          pinglun: pinglunadd
        }
      }).then( res =>{
        console.log('评论发表成功',res)
        this.setData({ //数据的更新
          pinglun: pinglunadd
        })
      }).catch( res =>{
        console('评论发表失败',res)
      })
    }
})

2-4.编写pinglun.json文件

{
  "usingComponents": {},
  "navigationBarTitleText": "评论"
}

2-5.编写pinglun.wxml文件

<!--pages/pinglun/pinglun.wxml-->
<view class="tip">评论区域</view>
<block wx:for="{{pinglun}}" wx:key="index">
<view class="pinglunItem">
<view>{{item.name}}发表评论:</view>
<view>{{item.content}}</view>
</view>
</block>
<input class="input" bindinput="getContent" placeholder="请输入评论内容"> </input>
<button bindtap="getgo" type="primary">发表评论</button>

2-6.编写pinglun.wxss文件

/* pages/pinglun/pinglun.wxss */
.tip{
  margin-top: 30rpx;
  font-size: 50rpx;
  color:goldenrod;
}
.pinglunItem{
  border-bottom: 2px solid gainsboro;
  margin-left: 50rpx;
  margin-top: 30rpx;
}
.input{
  border: 1px solid gainsboro;
  margin-top: 150rpx;
  margin-bottom: 30rpx;
}

2-7.效果图(视频)

评论效果视频


主要优化如下:

1.输入内容后,输入栏清空。

2.进行友好提示如加载中…

3-1.修改pinglun.js文件

// pages/pinglun/pinglun.js
let ID = ''
Page({
  data: {
    pinglun: [],   //评论数组
    content: ''
  },
  onLoad() {
    ID = 'b69f67c06268c88b005446ac66f0ad09'
    wx.cloud.database().collection('Goods')
      .doc(ID)
      .get()
      .then(res => {
        console.log('详情页成功', res)
        this.setData({
          detail: res.data,
          pinglun: res.data.pinglun
        })
      })
      .catch(res => {
        console.log('请求数据失败', res)
      })
  },
  //获取用户输入的评论内容
  getContent(e) {
    this.setData({
      content: e.detail.value
    })
  },
  //发布评论
  getgo() {
    //输入内容不能少于10位
    let content=this.data.content
    if (content.length < 10) {
      wx.showToast({
        icon: 'none',
        title: '内容过短!',
      })
        return
      }
      let pinglunItem = {}
      pinglunItem.name = 'catgod'      //评论者
      pinglunItem.content = content    //评论内容
      let pinglunadd = this.data.pinglun
      pinglunadd.push(pinglunItem)
      console.log('添加后的评论:',pinglunadd)
      wx.showLoading({
        title:'发表中...'
      })
      //调用云函数进行数据的更新
      wx.cloud.callFunction({
        name: 'tubiao',
        data: {
          id: ID,
          action: "pinglun",
          pinglun: pinglunadd
        }
      }).then( res =>{
        console.log('评论发表成功',res)
        this.setData({
          pinglun: pinglunadd,
          content: ''
        })
        wx.hideLoading()
      }).catch( res =>{
        console.log('评论发表失败',res)
        wx.hideLoading()
      })
    }
})

3-2.修改pinglun.wxml文件

<!--pages/pinglun/pinglun.wxml-->
<view class="tip">评论区域</view>
<block wx:for="{{pinglun}}" wx:key="index">
<view class="pinglunItem">
<view>{{item.name}}发表评论:</view>
<view>{{item.content}}</view>
</view>
</block>
<input class="input" bindinput="getContent" placeholder="请输入评论内容" value="{{content}}"> </input>
<button bindtap="getgo" type="primary">发表评论</button>

3-3.效果图(视频)

评论优化效果视频

image.png

小程序-评论

云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例

感谢大家,点赞,收藏,关注,评论!

目录
相关文章
|
1天前
|
小程序 开发者
uniapp实战 —— 开发微信小程序的调试技巧
uniapp实战 —— 开发微信小程序的调试技巧
7 1
|
1天前
|
小程序 前端开发
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
13 0
|
1天前
|
小程序
【微信小程序-原生开发】实用教程21 - 分包
【微信小程序-原生开发】实用教程21 - 分包
5 0
|
1天前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
5 0
|
1天前
|
小程序 前端开发
【微信小程序-原生开发】添加自定义图标(以使用阿里图标库为例)
【微信小程序-原生开发】添加自定义图标(以使用阿里图标库为例)
12 0
|
1天前
|
小程序
【微信小程序-原生开发】客服
【微信小程序-原生开发】客服
10 0
|
1天前
|
小程序 JavaScript 安全
【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)
【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)
6 0
|
1天前
|
小程序 前端开发
【微信小程序-原生开发】TDesign 实战模板——聊天气泡
【微信小程序-原生开发】TDesign 实战模板——聊天气泡
8 0
|
1天前
|
小程序
【微信小程序-原生开发】wxml 支持 includes (wxml中执行函数的方法)
【微信小程序-原生开发】wxml 支持 includes (wxml中执行函数的方法)
7 0
|
1天前
|
小程序 C++
【微信小程序-原生开发】实用教程19 - 表单范例 VS 表单校验(含必填校验函数封装,实时数字校验)
【微信小程序-原生开发】实用教程19 - 表单范例 VS 表单校验(含必填校验函数封装,实时数字校验)
7 0