vue 级联下拉框选择的思维

在原来的js的思维下,级联下拉框的选择往往是,先绑定一级下拉框的菜单,然后在该下拉框下onchange, 在onchange事件中获取当前选项,然后绑定二级下拉框的数据,以此类推......

在vue框架下应该改变思维,首先设置一级下拉框的数据,然后watch 该 选项,如果改变,则设置二级下拉框的数据,一次类推:

复制代码
<el-form-item label="省">
      <el-select v-model="where.provinceId" placeholder="请选择省份" clearable >
             <el-option v-for="item in provinces" :key="item.id" :label="item.name" :value="item.id" />
       </el-select>
</el-form-item>
<el-form-item label="市">
      <el-select v-model="where.cityId" placeholder="请选择市" clearable>
             <el-option v-for="item in cities" :key="item.id" :label="item.name" :value="item.id" />
       </el-select>
</el-form-item>

const provinces = ref([])
const cities = ref([])

onMounted(()=>{
    // 通过接口获取省份
    provinces.value = [...data]
})

watch: {
    provinceId: {
      deep: true,
      handler() {
        // 根据接口获取市的数据
        cities.value=[...data]
        // 清空城市的选择
        where.cityId=''
      }
    }
},
相关推荐
To_OC10 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
如果超人不会飞14 小时前
脉络清晰的业务演进:TinyVue Timeline 时间线组件全方位实战指南
vue.js
如果超人不会飞14 小时前
从扁平到立体:掌握 TinyVue Grid 树形表格的高级实战指南
vue.js
To_OC16 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
用户21366100357217 小时前
Vue2组件化开发与父子通信
前端·vue.js
用户21366100357218 小时前
Vue2事件系统与指令进阶
前端·vue.js
labixiong18 小时前
实现一个能跑的迷你版Promise(一)
前端·javascript·面试
逸铭21 小时前
Day 5:三栏布局——左账号 / 中聊天 / 右工具
vue.js·electron
用户1733598075371 天前
Vue 3 SPA 首屏优化:从 3s 到 1.2s 的 5 个实践
前端·vue.js
weedsfly1 天前
还在用 Axios?你可能需要重新理解 XHR 与 Fetch
前端·javascript·面试