Dropdown 下拉菜单

向下弹出的列表。

何时使用

当页面上的操作命令过多时,用此组件可以收纳操作元素。点击或移入触点,会出现一个下拉菜单。可在列表中进行选择,并执行相应的命令。

代码演示

基本

最简单的下拉菜单。

  1. <template>
  2. <v-dropdown :data="data">
  3. <a href="javascript:void(0)" class="ant-dropdown-link ant-dropdown-trigger">
  4. Hover me <v-icon type="down"></v-icon>
  5. </a>
  6. </v-dropdown>
  7. </template>
  8. <script>
  9. export default {
  10. data:() => ({
  11. data: [
  12. {content: '1st item'},
  13. {content: '2nd item'},
  14. {content: '3rd item'},
  15. ],
  16. }),
  17. }
  18. </script>

其他元素

分割线和不可用菜单项。

  1. <template>
  2. <v-dropdown :data="data1">
  3. <a href="javascript:void(0)" class="ant-dropdown-link ant-dropdown-trigger">
  4. Hover me <v-icon type="down"></v-icon>
  5. </a>
  6. </v-dropdown>
  7. </template>
  8. <script>
  9. export default {
  10. data:() => ({
  11. data1: [
  12. {content: '1st item'},
  13. {content: '2nd item'},
  14. {content: '3rd item', divided: true, disabled: true},
  15. ],
  16. }),
  17. }
  18. </script>

触发方式

默认是移入触发菜单,可以点击触发。

  1. <template>
  2. <v-dropdown :data="data" trigger="click">
  3. <a href="javascript:void(0)" class="ant-dropdown-link ant-dropdown-trigger">
  4. Click me <v-icon type="down"></v-icon>
  5. </a>
  6. </v-dropdown>
  7. </template>
  8. <script>
  9. export default {
  10. data:() => ({
  11. data: [
  12. {content: '1st item'},
  13. {content: '2nd item'},
  14. {content: '3rd item'},
  15. ],
  16. }),
  17. }
  18. </script>

触发事件

点击菜单项后会触发事件。

  1. <template>
  2. <v-dropdown :data="data" @item-click="itemClick">
  3. <a href="javascript:void(0)" class="ant-dropdown-link ant-dropdown-trigger">
  4. Hover me <v-icon type="down"></v-icon>
  5. </a>
  6. </v-dropdown>
  7. </template>
  8. <script>
  9. export default {
  10. data:() => ({
  11. data: [
  12. {content: '1st item'},
  13. {content: '2nd item'},
  14. {content: '3rd item'},
  15. ],
  16. }),
  17. methods: {
  18. itemClick(data) {
  19. console.log(data);
  20. }
  21. }
  22. }
  23. </script>

多级菜单

传入的菜单里有多个层级。

  1. <template>
  2. <v-dropdown :data="data2">
  3. <a href="javascript:void(0)" class="ant-dropdown-link ant-dropdown-trigger">
  4. Hover me <v-icon type="down"></v-icon>
  5. </a>
  6. </v-dropdown>
  7. </template>
  8. <script>
  9. export default {
  10. data:() => ({
  11. data2: [
  12. {content: '1st item'},
  13. {content: '2nd item'},
  14. {
  15. content: 'sub',
  16. children: [
  17. {content: '3rd item'},
  18. {content: '4th item'},
  19. ],
  20. },
  21. },
  22. ],
  23. }),
  24. }
  25. </script>

API

Dropdown Props

参数说明类型默认值
data可选项数据源Array-
trigger触发方式String: hover clickhover
position下拉框的定位方式String: absolute fixedabsolute
popupContainer下拉菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。Function() => document.body

Dropdown Events

事件说明参数
item-click点击菜单项时触发function(data)

Dropdown:Data Prop

参数说明类型默认值
content可选项数据源String-
disabled是否禁用Booleanfalse
divided是否显示分割线Booleanfalse