一、基本概念
Cascader是一種常見的嵌套式選擇器組件,用於多層級數據的選擇交互。比如省市區三級聯動、商品分類選擇等場景都可以使用Cascader組件。
Cascader組件可以支持任意層級的數據結構,它的選擇器由面板與下拉菜單兩部分組成。
二、使用方法
使用Cascader組件需要先引入vue和iview庫,然後在代碼中通過定義options數據以及綁定value實現。
<template>
<div>
<i-cascader :options="options" v-model="selectedCities"></i-cascader>
</div>
</template>
<script>
export default {
data () {
return {
options: [
{
value: '廣東省',
label: '廣東省',
children: [
{
value: '深圳市',
label: '深圳市',
children: [
{
value: '南山區',
label: '南山區',
}
]
}
]
},
{
value: '重慶市',
label: '重慶市',
children: [
{
value: '渝中區',
label: '渝中區',
}
]
}
],
selectedCities: []
}
}
}
</script>
三、常用屬性
Cascader組件常用的屬性有以下幾個:
options:配置選項,類型為數組,可以用來設置選擇器的選項數據,默認值為[]。
value:當前選中節點的值,類型為數組,可以用v-model綁定實現多級選擇,初始值可以為空。
change-on-select:在選擇過程中是否立即改變值,類型為Boolean,默認值為false,如果設置為true,則每次選擇都會改變value值,否則只在所有選項選擇完成後才會改變值。
四、事件
Cascader組件提供了兩個事件,分別是change和expand-change。
change:選中節點發生變化時觸發,回調參數為選中的節點數組。
expand-change:展開節點時觸發,回調參數為被展開的節點的值與節點所有層級的值組成的對象。
<template>
<div>
<i-cascader :options="options" v-model="selectedCities" @change="handleNodeChange"></i-cascader>
</div>
</template>
<script>
export default {
data () {
return {
options: [], // 省略options數據
selectedCities: [],
}
},
methods: {
handleNodeChange (value, selectedData) {
console.log(value)
console.log(selectedData)
}
}
}
</script>
五、樣式定製
Cascader組件可以通過覆蓋默認樣式實現個性化的定製。其實現方法有兩種:
iview提供的全局樣式文件覆蓋:iview默認樣式可以在源碼中的src/styles/index.less中找到。選擇器由 .ivu-cascader 開始,通過複製樣式代碼到自己的項目中進行修改即可。
自定義樣式覆蓋:可以直接在樣式文件中對Cascader組件的類名進行覆蓋,注意樣式作用域問題。
<template>
<div class="my-cascader">
<i-cascader :options="options" v-model="selectedCities"></i-cascader>
</div>
</template>
<script>
export default {
data () {
return {
options: [], // 省略options數據
selectedCities: [],
}
},
}
</script>
<style scoped>
.my-cascader .ivu-cascader-menu {
border-radius: 4px;
padding: 10px;
background-color: #f6f6f6;
}
.my-cascader .ivu-cascader-menu-item-active,
.my-cascader .ivu-cascader-menu-item-selected {
color: #fbaf5d;
}
</style>
六、小結
本文介紹了Cascader組件的基本概念、使用方法、常用屬性、事件、樣式定製等多方面內容,相信通過此文的講解,讀者可以更加深入地了解Cascader組件的實現原理及用法,並在實際項目中運用自如。
原創文章,作者:OADB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144003.html