vue.js 下拉框
时间: 2023-07-18 12:09:49 浏览: 101
在 Vue.js 中,可以使用第三方组件库或者自己手写组件实现下拉框。这里给出两种实现方式的示例:
1. 使用第三方组件库 Element UI
Element UI 是一个基于 Vue.js 的组件库,提供了丰富的 UI 组件,包括下拉框。使用 Element UI 实现下拉框的示例代码如下:
```vue
<template>
<div>
<el-select v-model="selectedValue" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</template>
<script>
export default {
data() {
return {
selectedValue: '',
options: [
{ value: 'option1', label: '选项1' },
{ value: 'option2', label: '选项2' },
{ value: 'option3', label: '选项3' },
],
};
},
};
</script>
```
2. 手写组件实现下拉框
手写组件需要自己实现下拉框的显示和隐藏、选项的展示和选中等功能,示例代码如下:
```vue
<template>
<div class="dropdown">
<div class="dropdown-toggle" @click="dropdownOpen = !dropdownOpen">{{ selectedValue }}</div>
<div class="dropdown-menu" v-show="dropdownOpen">
<div class="dropdown-item" v-for="item in options" :key="item.value" @click="selectItem(item)">{{ item.label }}</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
selectedValue: '',
options: [
{ value: 'option1', label: '选项1' },
{ value: 'option2', label: '选项2' },
{ value: 'option3', label: '选项3' },
],
dropdownOpen: false,
};
},
methods: {
selectItem(item) {
this.selectedValue = item.label;
this.dropdownOpen = false;
},
},
};
</script>
<style>
.dropdown {
position: relative;
}
.dropdown-toggle {
cursor: pointer;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1;
display: none;
}
.dropdown-menu.show {
display: block;
}
</style>
```
以上两种实现方式都可以实现下拉框的功能,选择哪种方式可以根据具体情况进行选择。
阅读全文