Cascader 级联选择

引入

基础用法

级联选择组件可以搭配 Field 和 Popup 组件使用,示例如下:

  1. v-model="state.fieldValue"
  2. is-link
  3. readonly
  4. label="地区"
  5. placeholder="请选择所在地区"
  6. @click="state.show = true"
  7. />
  8. <van-popup v-model:show="state.show" round position="bottom">
  9. <van-cascader
  10. v-model="state.cascaderValue"
  11. title="请选择所在地区"
  12. :options="options"
  13. @finish="onFinish"
  14. />
  15. </van-popup>
  1. <van-cascader
  2. v-model="state.cascaderValue"
  3. title="请选择所在地区"
  4. :options="options"
  5. active-color="#1989fa"
  6. @close="state.show = false"
  7. @finish="onFinish"
  8. />

异步加载选项

可以监听 change 事件并动态设置 options,实现异步加载选项。

  1. export default {
  2. setup() {
  3. const state = reactive({
  4. show: false,
  5. fieldValue: '',
  6. cascaderValue: '',
  7. options: [
  8. {
  9. text: '浙江省',
  10. value: '330000',
  11. children: [],
  12. ],
  13. });
  14. const onChange = ({ value }) => {
  15. if (value === state.options[0].value) {
  16. setTimeout(() => {
  17. state.options[0].children = [
  18. { text: '杭州市', value: '330100' },
  19. { text: '宁波市', value: '330200' },
  20. ];
  21. }, 500);
  22. }
  23. };
  24. const onFinish = ({ selectedOptions }) => {
  25. state.show = false;
  26. };
  27. return {
  28. state,
  29. onChange,
  30. onFinish,
  31. };
  32. },
  33. };

API

Props

Slots

样式变量