Vue是一種流行的JavaScript框架,常用于構(gòu)建單頁面應(yīng)用程序(SPA)。聯(lián)動(dòng)表格是Vue應(yīng)用中常見的一種功能,它通常用于展示復(fù)雜數(shù)據(jù)集合,并允許用戶通過關(guān)聯(lián)選擇器來篩選數(shù)據(jù)。在本文中,我們將介紹如何使用Vue實(shí)現(xiàn)聯(lián)動(dòng)表格。
在Vue中,聯(lián)動(dòng)表格可以通過使用計(jì)算屬性和v-model指令來實(shí)現(xiàn)。假設(shè)我們的表格中有兩個(gè)列:省和市。當(dāng)省被選擇時(shí),另一個(gè)表格列會(huì)立即顯示該省中所有城市的列表。為此,我們將首先在App.vue中定義一個(gè)初始的表格數(shù)據(jù)集合。
<template>
<div id="app">
<select v-model="selectedProvince">
<option v-for="province in provinces" :value="province">
{{ province }}
</option>
</select>
<select v-model="selectedCity">
<option v-for="city in cities" :value="city">
{{ city }}
</option>
</select>
</div>
</template>
<script>
export default {
data() {
return {
provinces: ['北京', '上海', '廣東', '四川', '陜西'],
cities: [],
selectedProvince: '',
selectedCity: ''
};
},
computed: {
filteredCities() {
return this.cities.filter(city => {
return city.province === this.selectedProvince;
});
}
},
watch: {
selectedProvince() {
if (this.selectedProvince) {
this.cities = [
{ name: '北京', province: '北京' },
{ name: '上海', province: '上海' },
{ name: '廣州', province: '廣東' },
{ name: '深圳', province: '廣東' },
{ name: '成都', province: '四川' },
{ name: '西安', province: '陜西' },
{ name: '咸陽', province: '陜西' }
];
} else {
this.cities = [];
}
this.selectedCity = '';
}
}
};
</script>
上述代碼中,我們通過定義一個(gè)computed計(jì)算屬性來過濾城市列表,只顯示與選擇的省份匹配的城市。我們還使用watch監(jiān)聽selectedProvince的變化,以便動(dòng)態(tài)更新城市列表,同時(shí)清空selectedCity的值以避免用戶輸入不正確的城市名稱。
此時(shí),我們的聯(lián)動(dòng)表格就已經(jīng)完成了!可以通過運(yùn)行npm run serve命令進(jìn)行本地開發(fā)和測(cè)試,然后在瀏覽器中訪問http://localhost:8080查看效果。