vue實(shí)現(xiàn)全選功能
本文實(shí)例為大家分享了vue實(shí)現(xiàn)全選功能的具體代碼,供大家參考,具體內(nèi)容如下
全選思路
1、準(zhǔn)備標(biāo)簽,樣式,js,準(zhǔn)備數(shù)據(jù)
2、將數(shù)據(jù)循環(huán)展示在頁(yè)面上, 在li 里v-for
3、在全選框 v-model = "isAll" //總的狀態(tài)
4、小選框 v-model = "" //單個(gè)的狀態(tài)
5、小選影響全選 ... 定義計(jì)算屬性 isAll 統(tǒng)計(jì)小選框的狀態(tài), every查找數(shù)組里不符合條件的,直接返回false ...判斷每一個(gè)小選框的狀態(tài), 只要有一個(gè)小選框的狀態(tài)不為true 就是沒(méi)有被勾上, 那就返回false , 全選框的狀態(tài)就是false
6、全選影響小選... set(val) 設(shè)置全選的狀態(tài)(true/false)...然后就遍歷每個(gè)小選框看小選框的狀態(tài),讓它的狀態(tài)改為val全選的狀態(tài)
<template> <div> <span>全選:</span> <input type="checkbox" v-model="isAll" /> <button @click="btn">反選</button> <ul> <li v-for="(obj, index) in arr" :key="index"> <input type="checkbox" v-model="obj.c" /> <span>{{ obj.name }}</span> </li> </ul> </div> </template> <script> export default { data() { return { arr: [ { name: "豬八戒", c: false, }, { name: "孫悟空", c: false, }, { name: "唐僧", c: false, }, { name: "白龍馬", c: false, }, ], }; }, computed: { isAll: { //全選影響小選 set(val) { //set(val) 設(shè)置全選的狀態(tài)(true/ false) //我們手動(dòng)設(shè)置了全選框的狀態(tài),就遍歷數(shù)組里的每個(gè)對(duì)象的c屬性, 也就是遍歷看每個(gè)小選框的狀態(tài),讓它的狀態(tài)改為 val 全選框的狀態(tài) this.arr.forEach((obj) => (obj.c = val)); }, //小選框影響全選框 get() { //判斷數(shù)組里的每一個(gè)對(duì)象的c屬性 它是不是等于true, 就是判斷每一個(gè)小選框的狀態(tài), 只要有一個(gè)小選框的狀態(tài)不為true 就是沒(méi)有被勾上, 那就返回false , 全選框的狀態(tài)就是false // every口訣: 查找數(shù)組里"不符合"條件, 直接原地返回false return this.arr.every((obj) => obj.c === true); }, }, }, methods: { btn() { //實(shí)現(xiàn)反選 //遍歷數(shù)組里的每一項(xiàng), 讓數(shù)組里對(duì)象的c屬性取反再賦值回去 this.arr.forEach((obj) => (obj.c = !obj.c)); }, }, }; </script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于vuex強(qiáng)刷數(shù)據(jù)丟失問(wèn)題解析
這篇文章主要介紹了關(guān)于vuex強(qiáng)刷數(shù)據(jù)丟失問(wèn)題解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04vue 自定義指令directives及其常用鉤子函數(shù)說(shuō)明
這篇文章主要介紹了vue 自定義指令directives及其常用鉤子函數(shù)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01解決vue路由發(fā)生了跳轉(zhuǎn)但是界面沒(méi)有任何反應(yīng)問(wèn)題
這篇文章主要介紹了解決vue路由發(fā)生了跳轉(zhuǎn)但是界面沒(méi)有任何反應(yīng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04vue resource post請(qǐng)求時(shí)遇到的坑
這篇文章主要介紹了vue resource post請(qǐng)求時(shí)遇到的坑,需要的朋友可以參考下2017-10-10Vue中的父子組件通訊以及使用sync同步父子組件數(shù)據(jù)
這篇文章主要介紹了Vue中的父子組件通訊以及使用sync同步父子組件數(shù)據(jù),對(duì)vue感興趣的同學(xué),可以參考下2021-04-04淺析vue偵測(cè)數(shù)據(jù)的變化之基本實(shí)現(xiàn)
這里涉及到Vue一個(gè)重要特性:響應(yīng)式系統(tǒng)。數(shù)據(jù)模型只是普通的 JavaScript對(duì)象,當(dāng)我們修改時(shí),視圖會(huì)被更新,而變化偵測(cè)是響應(yīng)式系統(tǒng)的核心2021-06-06