亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vant?Cascader級聯(lián)選擇實現(xiàn)可以選擇任意一層級

 更新時間:2024年07月02日 09:03:10   作者:i紸定i  
這篇文章主要介紹了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 watch原理源碼層深入講解

    Vue watch原理源碼層深入講解

    watch 是由用戶定義的數(shù)據(jù)監(jiān)聽,當(dāng)監(jiān)聽的屬性發(fā)生改變就會觸發(fā)回調(diào),這項配置在業(yè)務(wù)中是很常用。在面試時,也是必問知識點,一般會用作和 computed 進行比較。那么本文就來帶大家從源碼理解 watch 的工作流程,以及依賴收集和深度監(jiān)聽的實現(xiàn)
    2022-10-10
  • 解決vue中props對象中設(shè)置多個默認值的問題

    解決vue中props對象中設(shè)置多個默認值的問題

    props中設(shè)置了默認值,但是獲取時(獲取父頁面沒有傳的屬性) 打印出來是undefined,所以本文給大家介紹了解決vue中props對象中設(shè)置多個默認值的問題,需要的朋友可以參考下
    2024-04-04
  • vue?element?ui?Select選擇器如何設(shè)置默認狀態(tài)

    vue?element?ui?Select選擇器如何設(shè)置默認狀態(tài)

    這篇文章主要介紹了vue?element?ui?Select選擇器如何設(shè)置默認狀態(tài)問題,具有很好的參考價值,希望對大家有所幫助,
    2023-10-10
  • vue 數(shù)據(jù)(data)賦值問題的解決方案

    vue 數(shù)據(jù)(data)賦值問題的解決方案

    這篇文章主要介紹了vue 數(shù)據(jù)(data)賦值問題的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • vue項目中的遇錯:Invalid?Host?header問題

    vue項目中的遇錯:Invalid?Host?header問題

    這篇文章主要介紹了vue項目中的遇錯:Invalid?Host?header問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法

    vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法

    下面小編就為大家分享一篇vue中如何動態(tài)綁定圖片,vue中通過data返回圖片路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue關(guān)于自定義指令與v-if沖突的問題

    vue關(guān)于自定義指令與v-if沖突的問題

    這篇文章主要介紹了vue關(guān)于自定義指令與v-if沖突的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue 中的compile操作方法

    Vue 中的compile操作方法

    這篇文章主要介紹了Vue 中的compile操作方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-02-02
  • 如何解決vue項目打包后文件過大問題

    如何解決vue項目打包后文件過大問題

    這篇文章主要介紹了如何解決vue項目打包后文件過大問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue中的@click.native 原生點擊事件

    vue中的@click.native 原生點擊事件

    這篇文章主要介紹了vue中的@click.native 原生點擊事件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論