使用vue&axios请求的get方式实现留言评论的添加,删除功能

实现样式

在这里插入图片描述

axios请求


axios.get(url, {
  params: {
    key: value
  }
}).then( res => {
  console.log(res.data)
})


axios.post(url, {
  key: value,
  key2: value2
}).then(res => {
  console.log(res.data)
})

接口文档

公共地址: http://172.16.13.100

查询评论

用于查询所有的评论内容

  • 接口地址: /getComments.php
  • 请求方式: GET
  • 请求参数 无

新增评论

用于新增一条评论

  • 接口地址: /addComment.php
  • 请求方式: GET
  • 请求参数
参数名默认值描述
name‘’留言的人的名字
content‘’留言的内容

删除评论

用于删除一条评论

  • 接口地址: /delComment.php
  • 请求方式: GET
  • 请求参数
参数名默认值描述
id‘’留言的id

代码实现

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="stylesheet" href="./bootstrap.css">
</head>

<body>
  <div class="container" id="app">
    <div class="panel panel-default">
      <div class="panel-heading">
        评论
      </div>
      <div class="panel-body">
        <div class="form-group">
          <input v-model="comment.name" type="text" class="form-control" placeholder="请输入姓名">
        </div>
        <div class="form-group">
          <textarea v-model="comment.content" class="form-control" rows="5" placeholder="请输入留言内容"></textarea>
        </div>
        <button class="btn btn-success pull-right" @click="send">发布</button>
      </div>
      <ul class="list-group clearfix">
        <template v-if="comments.length">
          <li class="list-group-item" v-for="(comment, index) in comments">
            <button @click="del(index)" type="button" class="close"><span>&times;</span></button>
            <h5 class="list-group-item-heading">{{comment.name}}:</h5>
            <p class="list-group-item-text">
              {{comment.content}}
              <time class="pull-right text-muted">{{comment.date}}</time>

            </p>
          </li>
        </template>
        <li v-else class="list-group-item disabled">暂无评论</li>
      </ul>
    </div>
  </div>


  <script src="./vue.js"></script>
  <script src="./axios.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        comment: {
          name: '',
          content: ''
        },
        comments: []
      },
      methods: {
        del(index) {
          console.log(this.comments[index].id)
          // 获取到要删除的id
          const id = this.comments[index].id
          // 然后调用接口删除数据库中的数据
          axios.get('http://172.16.13.100/delComment.php', {
            params: {
              // id: id
              id
            }
          }).then(res => {
            console.log(res.data)
            if (res.data.code === 200) {
              // 删除前端的数据
              this.comments.splice(index, 1)
            }
          })
        },
        send() {
          // const {name, content} = this.comment
          // 发起请求 addComment.php
          /* axios.get(`http://172.16.13.100/addComment.php`, {
            params: {
              // name: name,
              name,
              // content: content
              content
            }
          }) */

          axios.get('http://172.16.13.100/addComment.php', {
            params: this.comment
          }).then(res => {
            // res获取到的是axios对请求结果二次封装的结果 res.data才是对应的内容
            console.log(res.data)
            if (res.data.code === 200) {
              // 拿到后台返回的res.data.data 是新增的数据
              this.comments.push(res.data.data)
              this.comment.content = ''
              this.comment.name = ''
            }
          })
        }
      },
      created() {
        // create会在网页加载后立即执行
        // 下面是axios的get请求示例
        /* $.ajax({
          url: '',
          type: "GET",
          data: {

          },
          dataType: "JSON",
          success () {

          }
        })
        */
        axios.get('http://172.16.13.100/getComments.php').then(res => {
          // axios将请求到的结果又封装了一层 res.data才是请求到的内容
          // console.log(res.data)
          if (res.data.code === 200) {
            // 将请求到的res.data.data设置给this.comments
            this.comments = res.data.data
          }
        })

      }
    })
  </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本地是好的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值