JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<div id="app">
  <ul>
    <li v-for="(item,index) in phone">
      Product name: {{item.name}}
      <br>Product price:{{item.price}}
      <br>
      <a class="a-less" @click="lessClick(item)">-</a>
      <input type="text" v-model="item.count">
      <a class="a-add" @click="addClick(item)">+</a>
    </li>
  </ul>
</div>

CSS

body {
  margin: 0 auto;
}

ul>li {
  padding: 0.2rem;
  list-style-type: none;
  border-bottom: 1px dashed black;
}

.a-less,
.a-add {
  height: 2rem;
  line-height: 2rem;
  padding: 0.1rem;
  margin: 0.1rem;
  border: 1px solid red;
}

.a-less:hover,
.a-add:hover {
  background-color: #0470fd;
  color: #fff;
}

JavaScript

var app = new Vue({
  el: "#app",
  data: {
    phone: [{
      id: "1",
      name: 'Iphone 4S',
      price: '300',
      count: "0"
    }, {
      id: "2",
      name: 'Xiaomi',
      price: '200',
      count: "0"
    }, {
      id: "3",
      name: 'vivo X20',
      price: '320',
      count: "0"
    }],
    addcart: []
  },
  methods: {
    lessClick(item) {
        if (item.count > 0) {
          item.count--
            const index = this.addcart.indexOf(item.name)
          if (index > -1) {
            const removedName = this.addcart.splice(index, 1)
            console.log("remove:", removedName)
          }
        }
      },
      addClick(item) {
        item.count++
          console.log("add:", this.addcart.push(item.name))

      }
  }
})