Vant3 的 Cascader 级联选择组件用于实现多层级的联动选择,常用于省市区选择等场景。以下是一些关于 Vant3 Cascader 的基本用法和示例:

基本用法:
<template>
  <van-cascader
    v-model="selectedOptions"
    :options="cascaderOptions"
    @change="handleCascaderChange"
  />
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      cascaderOptions: [
        {
          text: '浙江省',
          value: 'zhejiang',
          children: [
            {
              text: '杭州市',
              value: 'hangzhou',
              children: [
                { text: '西湖区', value: 'xihu' },
                { text: '余杭区', value: 'yuhang' }
              ]
            },
            {
              text: '宁波市',
              value: 'ningbo',
              children: [
                { text: '鄞州区', value: 'yinzhou' },
                { text: '江东区', value: 'jiangdong' }
              ]
            }
          ]
        },
        // ...其他省市区数据
      ]
    };
  },
  methods: {
    handleCascaderChange(value, selectedOptions) {
      console.log('选中的值:', value);
      console.log('选中的选项:', selectedOptions);
    }
  }
};
</script>

在上述代码中,通过 v-model 双向绑定的方式,你可以获取用户选择的值。通过设置 options 属性,你可以传入级联选择的数据。

自定义字段名:
<template>
  <van-cascader
    v-model="selectedOptions"
    :options="cascaderOptions"
    :field-names="{ value: 'id', text: 'name', children: 'items' }"
  />
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      cascaderOptions: [
        {
          name: '浙江省',
          id: 'zhejiang',
          items: [
            {
              name: '杭州市',
              id: 'hangzhou',
              items: [
                { name: '西湖区', id: 'xihu' },
                { name: '余杭区', id: 'yuhang' }
              ]
            },
            {
              name: '宁波市',
              id: 'ningbo',
              items: [
                { name: '鄞州区', id: 'yinzhou' },
                { name: '江东区', id: 'jiangdong' }
              ]
            }
          ]
        },
        // ...其他省市区数据
      ]
    };
  }
};
</script>

通过设置 field-names 属性,你可以自定义级联选择数据中的字段名,例如 value、text、children 等。

禁用选项:
<template>
  <van-cascader
    v-model="selectedOptions"
    :options="cascaderOptions"
    :disabled-options="[ 'zhejiang', 'hangzhou', 'xihu' ]"
  />
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      cascaderOptions: [
        {
          text: '浙江省',
          value: 'zhejiang',
          children: [
            {
              text: '杭州市',
              value: 'hangzhou',
              children: [
                { text: '西湖区', value: 'xihu' },
                { text: '余杭区', value: 'yuhang' }
              ]
            },
            {
              text: '宁波市',
              value: 'ningbo',
              children: [
                { text: '鄞州区', value: 'yinzhou' },
                { text: '江东区', value: 'jiangdong' }
              ]
            }
          ]
        },
        // ...其他省市区数据
      ]
    };
  }
};
</script>

通过设置 disabled-options 属性,你可以禁用某些选项,让用户无法选择这些选项。

以上是一些 Vant3 Cascader 级联选择组件的基本用法。查阅 Vant3 的官方文档能够获取更详细的信息、配置选项和示例代码:[Vant3 Cascader 级联选择文档](https://vant-contrib.gitee.io/vant/v3/#/zh-CN/cascader)。


转载请注明出处:http://www.zyzy.cn/article/detail/5718/Vant