vant?Cascader級聯(lián)選擇實現(xiàn)可以選擇任意一層級
vant Cascader級聯(lián)選擇可以選擇任意一層級
通過使用change事件,來實現(xiàn)選擇任意一層級
<template>
<div>
<van-cascader
:options="options"
:value="selectedValue"
@change="handleCascaderChange"
></van-cascader>
</div>
</template>data() {
return {
options: [
{ value: '1', label: 'Option 1', children: [...] },
{ value: '2', label: 'Option 2', children: [...] },
...
],
selectedValue: [] // 記錄選擇值
};
},
methods: {
handleCascaderChange(value) {
this.selectedValue = value;
}
}van-cascader 異步加載
異步加載選項
在使用級聯(lián)選擇時當一次性拿到數(shù)據(jù)量太大時不僅接口慢而且前端渲染頁面也會變慢,用戶體驗很不好,建議使用異步加載選項,
拿到的接口讓后端返回一個是否還有下一級的判斷,不然van-cascader判斷沒有children的時候會自動結束的
可以監(jiān)聽 change 事件并動態(tài)設置 options,實現(xiàn)異步加載選項。
示例:
<van-popup v-model:show="showCascader" round position="bottom">
<van-cascader
v-if="showCascader" // 加上這個是因為在企微側邊欄使用的時候,操作偶爾會出現(xiàn)tabs歪的情況
v-model="formData.id"
title="請選擇xxx"
:options="options"
active-color="#1989fa"
:field-names="fieldNames"
@change="onChange"
@close="showCascader = false"
@finish="onFinish"
/>
</van-popup>自定義字段名
后端定義的字段一開始可能不符合vant的默認字段,通過 field-names 屬性可以自定義 options 里的字段名稱。
const fieldNames = {
// 換成后端返回的你需要的對應字段
text: 'name',
value: 'id',
children: 'children'
};監(jiān)聽change事件,動態(tài)設置options
const onChange = ({value,selectedOptions}) => {
getList({code:value}).then(res => { //請求接口
res.data.map(item=>{
if(item.children.length==0){ // 這個是和后端約定了如果沒有子級,返回一個空數(shù)組,可以自己和后端約定一個可判斷的值
delete item.children
}
})
addTree(selectedOptions, res.data, value)
});
};
const addTree = (selectedOptions, children, id) =>{
selectedOptions.forEach(item => {
if (item.id=== id) { // 注意這里是你要的value
item.children = children
}
})
}這樣就可以動態(tài)的獲取到每一級下面的數(shù)據(jù)了
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue?element?ui?Select選擇器如何設置默認狀態(tài)
這篇文章主要介紹了vue?element?ui?Select選擇器如何設置默認狀態(tài)問題,具有很好的參考價值,希望對大家有所幫助,2023-10-10
vue 數(shù)據(jù)(data)賦值問題的解決方案
這篇文章主要介紹了vue 數(shù)據(jù)(data)賦值問題的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
vue項目中的遇錯:Invalid?Host?header問題
這篇文章主要介紹了vue項目中的遇錯:Invalid?Host?header問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法
下面小編就為大家分享一篇vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02

