1. <div id="app">
    2. <div v-for="item of arr">
    3. <input type="checkbox"
    4. v-model="item.isState">{{item.name}}
    5. </div>
    6. 全选/反选 <input type="checkbox"
    7. v-model="sum">
    8. </div>
    9. <script>
    10. var vm = new Vue({
    11. el:"#app",
    12. data:{
    13. arr:[
    14. {name:"html",isState:false},
    15. {name:"css",isState:false},
    16. {name:"js",isState:false}
    17. ]
    18. },
    19. computed:{
    20. sum(){
    21. return this.arr.every(item=>item.isState);
    22. }
    23. }
    24. })
    25. </script>

    切换全选checkbox会报错。

    1. <div id="app">
    2. <div v-for="item of arr">
    3. <input type="checkbox"
    4. v-model="item.isState">{{item.name}}
    5. </div>
    6. 全选/反选 <input type="checkbox"
    7. v-model="sum">
    8. </div>
    9. <script>
    10. var vm = new Vue({
    11. el:"#app",
    12. data:{
    13. arr:[
    14. {name:"html",isState:false},
    15. {name:"css",isState:false},
    16. {name:"js",isState:false}
    17. ],
    18. },
    19. computed:{
    20. sum:{
    21. get(){
    22. return this.arr.every(item=>item.isState)
    23. },
    24. set(val){
    25. this.arr.forEach(item=>{
    26. item.isState = val
    27. })
    28. }
    29. }
    30. }
    31. })