Vue implements simple comment function

Vue implements simple comment function

This article shares the specific code of Vue to implement a simple comment function for your reference. The specific content is as follows

1. This is an example of my study. There are some deficiencies. I hope you can give me some advice. Thank you~

2. The effect of posting comments

The effect after clicking "Publish" (Click "Delete" after each comment to delete the entire comment~)

3. Complete code display (my HTML structure is messy, here I would like to remind you that the div without a defined class can be deleted. I added more divs for the convenience of writing styles)

I still want to remind you, don't forget to import vue.js, and remember to change the directory according to your storage location

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <script src="./vue.js"></script>
  <style type="text/css">
   *{
    margin: 0;padding: 0;
    box-sizing: border-box;
   }
   #app{
    width: 700px;
    height: 650px;
    margin: auto;
    border: 1px solid #ccc;
   }
   #app h1{
    width: 700px;
    font-weight: 400;
    line-height: 100px;
    padding-left: 20px;
    background-color: #cccccc;
    margin-bottom: 20px;
   }
   #app>div{
    padding: 0 20px;
   }
   #app>div>input{
    width: 200px;
    height: 30px;
    padding: 0 5px;
    margin: 5px 0;
   }
   #app>div>textarea{
    padding: 5px;
    margin-top: 5px;
   }
   .cont div{
    height: 50px;
    border: 1px solid #acacac;
    border-radius: 5px;
    padding: 0 10px;
   }
   .cont div span{
    padding: 0 5px;
    line-height: 50px;
   }
   .cont p{
    display: inline-block;
   }
   .cont div p:nth-of-type(1){
    color: #550000;
   }
   .cont div p:nth-of-type(2){
    color: #595959;
   }
   .cont .del{
    float: right;
    line-height: 50px;
    color: #003366;
    cursor: pointer;
   }
   .cont .del:hover{
    color: #550000;
   }
   .send{
    width: 80px;
    height: 30px;
    margin-top: 10px;
   }
   hr{
    border: 1px solid #bababa;
    margin: 15px 0;
   }
   h3{
    font-weight: 400;
    color: #333;
    margin-bottom: 10px;
   }
  </style>
 </head>
 <body>
  <div id="app">
   <h1>Welcome to the Tucao Hall</h1>
   <div>
    <label>Username:</label><br>
    <!-- .trim removes spaces in the content -->
    <!-- v-model binds the form's (uname) value -->
    <input type="text" placeholder="Username" v-model.trim="uname" /><br>
    <label>Comments:</label><br>
    <textarea rows="2" cols="23" placeholder="Tucao content" v-model.trim="tarea"></textarea><br>
    <!-- @click="",Set click event-->
    <button class="send" @click="sendCont()">Publish</button>
    <hr>
    <h3>Tucao reply:</h3>
    <!-- Traverse list data-->
    <div class="cont" v-for="val in list" :key="val.name">
     <div>
      <p>{{val.name}}</p><span>says:</span>
      <p>{{val.item}}</p>
      <p class="del" @click="delCont(val)">Delete</p>
     </div>
    </div>
   </div>
  </div>
  <script type="text/javascript">
   new Vue({
    el:"#app", //Specify template data:{
     list:[
      {"name":"beibei","item":"Mom, I want to eat baked sweet potatoes"},
      {"name":"dian","item":"eat,eat big chunks"},
     ],
     uname:"",
     Tarea:"",
    },
    methods:{
     // "Publish" button click event sendCont(){
      // Create a list var item = {name:this.uname,item:this.tarea};
      // Add item to the front of the list
      this.list.unshift(item);
      // User box, content box clear this.uname="";
      this.tarea="";
     },
     // Comment on the last "delete" event delCont(val){
      alert("Are you sure you want to delete?");
      // Find the index of val in list // The element traversed by value when the item/name value of value is equal to the item/name value of val var ind = this.list.findIndex(value=>value.item===val.item);
      // Delete the indth item in list this.list.splice(ind,1);
     }
    }
   })
  </script>
 </body>
</html>

4. That’s it. I wish you all a happy study. Goodbye.

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Vue implements comment function
  • Vue implements article comments and reply lists
  • VUE+Java implements comment reply function
  • Vue component to realize comment area function
  • Vue development to realize comment list
  • Vue implements comment list
  • Vue implements comment list function
  • Implementation of Vuepress to build a static blog with comment function
  • Vue.js implements article comment and reply comment functions
  • Vue component implements comment function

<<:  Solution to docker suddenly not being accessible from the external network

>>:  HTML tag ID can be a variable

Recommend

Detailed explanation of Linux rpm and yum commands and usage

RPM package management A packaging and installati...

How to hide elements on the Web and their advantages and disadvantages

Example source code: https://codepen.io/shadeed/p...

The difference between animation and transition

The difference between CSS3 animation and JS anim...

Pure CSS to modify the browser scrollbar style example

Use CSS to modify the browser scroll bar style ::...

JavaScript implements select all and unselect all operations

This article shares the specific code for JavaScr...

XHTML Getting Started Tutorial: XHTML Web Page Image Application

<br />Adding pictures reasonably can make a ...

How to install docker on centos

Here we only introduce the relatively simple inst...

Docker-compose quickly builds steps for Docker private warehouse

Create docker-compose.yml and fill in the followi...

MySQL8.0.18 configuration of multiple masters and one slave

Table of contents 1. Realistic Background 2. Agre...

In-depth explanation of the principle of MySQL Innodb index

introduction Looking back four years ago, when I ...

Analysis and solution of abnormal problem of loading jar in tomcat

Description of the phenomenon: The project uses s...

Get a list of your top 10 most frequently used terminal commands in Linux

I think the commands I use most often are: Choice...