要在 Vue3 中使用 Element UI 的 Cascader 组件实现省市区选择,需要进行以下步骤:
1. 安装 Element UI
可以使用 npm 或者 yarn 安装 Element UI:
```
npm i element-plus -S
```
或者
```
yarn add element-plus
```
2. 引入 Cascader 组件
在需要使用 Cascader 组件的 Vue 组件中,可以通过以下方式引入 Cascader 组件:
```js
import { defineComponent } from 'vue'
import { Cascader } from 'element-plus'
```
3. 在模板中使用 Cascader 组件
在模板中,可以使用 Cascader 组件进行省市区选择。例如:
```html
<template>
<div>
<el-cascader
:options="options"
v-model="selectedOptions"
@change="handleChange"
placeholder="请选择省市区"
clearable></el-cascader>
</div>
</template>
```
其中,`:options` 属性指定了 Cascader 的选项数据,`v-model` 绑定了选中的省市区数据,`@change` 监听选项变化事件,`placeholder` 属性指定了默认提示文本,`clearable` 属性指定了可以清空选项。
4. 编写选项数据
Cascader 组件需要一个选项数据列表来渲染下拉菜单,可以通过以下方式编写选项数据:
```js
export default defineComponent({
name: 'CascaderDemo',
data() {
return {
options: [
{
value: 'beijing',
label: '北京市',
children: [
{
value: 'chaoyang',
label: '朝阳区',
children: [
{
value: 'sanlitun',
label: '三里屯',
},
{
value: 'guomao',
label: '国贸',
},
],
},
{
value: 'haidian',
label: '海淀区',
children: [
{
value: 'zhongguancun',
label: '中关村',
},
{
value: 'wudaokou',
label: '五道口',
},
],
},
],
},
{
value: 'shanghai',
label: '上海市',
children: [
{
value: 'pudong',
label: '浦东新区',
children: [
{
value: 'lujiazui',
label: '陆家嘴',
},
{
value: 'zhangjiang',
label: '张江',
},
],
},
{
value: 'xuhui',
label: '徐汇区',
children: [
{
value: 'xujiahui',
label: '徐家汇',
},
{
value: 'huaihai',
label: '淮海路',
},
],
},
],
},
],
selectedOptions: [],
}
},
methods: {
handleChange(value) {
console.log(value)
},
},
})
```
其中,每个选项数据都包括 `value` 和 `label` 两个属性,`children` 属性表示该选项的子选项。在 `handleChange` 方法中,可以获取到选中的省市区数据。
以上就是在 Vue3 中使用 Element UI 的 Cascader 组件实现省市区选择的步骤。