中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue.js怎么實現全選功能

發布時間:2021-10-15 11:02:07 來源:億速云 閱讀:252 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關vue.js怎么實現全選功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

vue.js實現全選功能的方法:使用普通的事件監聽方式處理數據狀態,例如【var list = [{title : '數據一',checked : false,},{title : '數據二',checked : },{title...】。

本文操作環境:windows10系統、vue.js 2.9、thinkpad t480電腦。

在實際項目中我們可以使用如下兩種方式來實現全選功能,具體如下:

方式一:完全發揮了 vuejs 的特性,使用了 computed 實現了對 單選按鈕的實時監控。

<div id="app">
    <div class="box">
        <div class="title">
            <label><input type="checkbox" v-model="status">全選</label>
        </div>
        <ul>
            <li v-for="item,index of list"><label>
                <input type="checkbox" v-model="item.checked">{{item.title}}</label>
            </li>
        </ul>
    </div>
</div>
 
var list = [
    {
        title : '數據一',
        checked : false,
    },{
        title : '數據二',
        checked : true,
    },{
        title : '數據三',
        checked : true,
    },{
        title : '數據四',
        checked : true,
    },{
        title : '數據五',
        checked : true,
}];
 
var vm = new Vue({
    el : '#app',
    data:{
        list
    },
    computed:{
        status:{
            get(){
                return this.list.filter( item => item.checked ).length === this.list.length
            },
            set( value ){
                this.list.map(function( item ){
                    item.checked = value;
                    return item;
                });
            }
        }
    }
});

方式二:使用普通的事件監聽方式處理數據狀態

<div id="app">
    <div class="box">
        <div class="title"><label>
        <input type="checkbox" 
            v-model="status" 
            @change="allCheck">全選</label></div>
        <ul>
            <li v-for="item,index of list">
                <label><input type="checkbox" 
                v-model="item.checked" 
                @change="singleCheck">{{item.title}}</label></li>
        </ul>
    </div>
</div>
var list = [
    {
        title : '數據一',
        checked : false,
    },{
        title : '數據二',
        checked : true,
    },{
        title : '數據三',
        checked : true,
    },{
        title : '數據四',
        checked : true,
    },{
        title : '數據五',
        checked : true,
}];
 
var vm = new Vue({
    el : '#app',
    data : {
        list,
        status : this.list.filter( item => item.checked ).length === this.list.length ? true : false
    },
    methods : {
        allCheck(){
            this.list.map(function( item ){
                item.checked = this.status;
                return item;
            }.bind(this));
        },
        singleCheck(){
            this.status = this.list.filter( item => item.checked ).length === this.list.length ? true : false
        }
    }
});

說明在方式二中使用了事件監聽函數,使用了change,也可以使用 click,使用click事件時,低版本的vuejs存在 bug,高版本中 bug 修復,bug 存在于,在雙向綁定狀態改變時 使用click數據狀態后滯后。

關于“vue.js怎么實現全選功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐陵市| 子洲县| 长治县| 敦化市| 柯坪县| 城市| 连山| 重庆市| 永福县| 海门市| 永靖县| 临武县| 定襄县| 井研县| 方城县| 澎湖县| 上高县| 九寨沟县| 溧阳市| 定边县| 杭锦旗| 江陵县| 达孜县| 乌兰浩特市| 襄城县| 潼南县| 县级市| 沙坪坝区| 德令哈市| 赤城县| 大名县| 凤山市| 科技| 吴堡县| 平顶山市| 南阳市| 富平县| 贵港市| 阳城县| 通江县| 容城县|