Vue經常使用的全選/反選

在Vue中執行CheckBox的全選反選有不少方法
我以爲最易懂,速度最快的方法就是這個!less

首先就是本身建立一個input,正在mx.txt的前方添加一個input:CheckBox。在v-model加上你每次建立出來的mx.checkthis

最重點就在於forEach遍歷,出來的都是當前的。
有些人不注意的一點,爲何data裏面沒有check:[]這樣的出現。
data裏的是實時監控,你點一次自動將全部的check都變成了true。spa

this.list = this.list.filter(e => {
      return !e.check 
})

這句話的意思:當你打鉤的那幾個。
當前的數據賦一個值, 這個值就是過濾全部的list裏面想幹掉的人code

由於默認是false,可是被你選中的則是true。
但他讓你返回!e.check 則是false
也就是說:我要的是沒有中的blog

GIF.gif

<template>
  <div class="check">
    <button @click="checkAll">全選</button>
    <button @click="remAll">所有刪除</button>
    <button @click="rem">選中刪除</button>
    <br>
    <input type="text" v-model="txt" @keyup.enter="ck" />
    <ul>
      <li v-for="(mx, index) in list" :key="index">
        <input type="checkbox" v-model="mx.check" /> {{mx.txt}}
      </li>
    </ul>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        txt: "",
        list: [],
      }
    },
    methods: {
      ck() {
        this.list.push({
          txt: this.txt,
          check: false
        })

        this.txt = ""
      },
      remAll()
      {
          this.list = []
      },
      checkAll() 
      {

        this.list.forEach((mx) => {
          mx.check = !mx.check
        })

      },
      rem() {
        this.list = this.list.filter(e => {
          return !e.check 
        })
      }
    }
  }
</script>
<style lang="less">
  .check {
    cursor: pointer;

    button {
      cursor: pointer;
      border: 0;
      padding: 10px 30px;
      background: #000;
      color: #fff;
      border-radius: 100px;
      margin-bottom: 10px;
      outline: none;
    }

    input {
      padding: 15px;
      width: 300px;
      border: 0;
      box-shadow: 0 0 15px #ccc;
    }

    ul {
      width: 300px;
      padding: 0;
      cursor: pointer;
      box-shadow: 0 0 15px #ccc;
      min-height: 300px;
      padding: 15px;
      list-style: none;

      li {
        cursor: pointer;
        margin-bottom: 12px;

        >input {
          padding: 0;
          width: auto;
        }
      }
    }
  }
</style>
相關文章
相關標籤/搜索