vuejsは全選択機能を実現
2722 ワード
全選択機能
開発の説明プロジェクトvuejsを使用して を実現プロジェクトは2つの方法で全選択機能を実現し、ソースコードを添付し、 を参照する.
方式一
方式1では,vuejsの特性を完全に発揮し,computedを用いてラジオボタンのリアルタイムモニタリングを実現した.
方式2
方式2通常のイベント傍受方式を用いてデータ状態を処理する
説明方式2ではイベントリスニング関数を用い,changeを用いてもclickを用いてもよいし,clickイベントを用いた場合,低バージョンのvuejsにバグが存在し,高バージョンではバグが修復され,バグが存在し,双方向バインド状態が変化した場合にclickデータ状態を用いたヒステリシスが存在する.
開発の説明
方式一
方式1では,vuejsの特性を完全に発揮し,computedを用いてラジオボタンのリアルタイムモニタリングを実現した.
-
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;
});
}
}
}
});
方式2
方式2通常のイベント傍受方式を用いてデータ状態を処理する
-
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
}
}
});
説明方式2ではイベントリスニング関数を用い,changeを用いてもclickを用いてもよいし,clickイベントを用いた場合,低バージョンのvuejsにバグが存在し,高バージョンではバグが修復され,バグが存在し,双方向バインド状態が変化した場合にclickデータ状態を用いたヒステリシスが存在する.