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)選擇時當(dāng)一次性拿到數(shù)據(jù)量太大時不僅接口慢而且前端渲染頁面也會變慢,用戶體驗很不好,建議使用異步加載選項,
拿到的接口讓后端返回一個是否還有下一級的判斷,不然van-cascader判斷沒有children的時候會自動結(jié)束的
可以監(jiān)聽 change 事件并動態(tài)設(shè)置 options,實現(xiàn)異步加載選項。
示例:
<van-popup v-model:show="showCascader" round position="bottom"> <van-cascader v-if="showCascader" // 加上這個是因為在企微側(cè)邊欄使用的時候,操作偶爾會出現(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 = { // 換成后端返回的你需要的對應(yīng)字段 text: 'name', value: 'id', children: 'children' };
監(jiān)聽change事件,動態(tài)設(shè)置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ù)了
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue?element?ui?Select選擇器如何設(shè)置默認狀態(tài)
這篇文章主要介紹了vue?element?ui?Select選擇器如何設(shè)置默認狀態(tài)問題,具有很好的參考價值,希望對大家有所幫助,2023-10-10vue 數(shù)據(jù)(data)賦值問題的解決方案
這篇文章主要介紹了vue 數(shù)據(jù)(data)賦值問題的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03vue項目中的遇錯:Invalid?Host?header問題
這篇文章主要介紹了vue項目中的遇錯:Invalid?Host?header問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法
下面小編就為大家分享一篇vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02