2020-02-07 22:31:26 +08:00
# Opened Submenu
2020-02-28 19:57:52 +08:00
You can set `default-expanded-names` to make menu work in an uncontrolled manner or use `expanded-names` and `@expanded-names-change` to make it work in a controlled manner.
2019-12-31 11:36:13 +08:00
```html
< n-menu
2020-02-07 22:31:26 +08:00
v-model="activeName"
2020-02-28 19:57:52 +08:00
:default-expanded-names="defaultExpandedNames"
2020-06-17 12:45:10 +08:00
:items="menuItems"
2020-02-28 19:57:52 +08:00
@expanded -names-change="handleExpandedNamesChange"
2020-02-07 22:31:26 +08:00
@select ="handleSelect"
2020-06-17 12:45:10 +08:00
/>
2019-12-31 11:36:13 +08:00
```
```js
2020-02-07 22:31:26 +08:00
import bookIcon from 'naive-ui/lib/icons/book-outline'
import personIcon from 'naive-ui/lib/icons/person-outline'
import wineIcon from 'naive-ui/lib/icons/wine-outline'
2020-06-17 12:45:10 +08:00
const menuItems = [
{
title: 'Hear the Wind Sing',
name: 'hear-the-wind-sing',
icon: h => h('n-icon', [h(bookIcon)])
},
{
title: 'Pinball, 1973',
name: 'pinball-1973',
icon: h => h('n-icon', [h(bookIcon)]),
disabled: true,
children: [
{
title: 'Rat',
name: 'rat'
}
]
},
{
title: 'A Wild Sheep Chase',
name: 'a-wild-sheep-chase',
icon: h => h('n-icon', [h(bookIcon)]),
disabled: true
},
{
title: 'Dance Dance Dance',
name: 'dance-dance-dance',
icon: h => h('n-icon', [h(bookIcon)]),
children: [
{
type: 'group',
title: 'Characters',
children: [
{
title: 'Narrator',
name: 'narrator',
icon: h => h('n-icon', [h(personIcon)])
},
{
title: 'Sheep Man',
name: 'sheep-man',
icon: h => h('n-icon', [h(personIcon)])
}
]
},
{
title: 'Beverage',
name: 'beverage',
icon: h => h('n-icon', [h(wineIcon)]),
children: [
{
title: 'Whisky',
name: 'whisky'
}
]
},
{
title: 'Food',
name: 'food',
children: [
{
title: 'Sandwich',
name: 'sandwich'
}
]
},
{
title: 'The past increases. The future recedes.',
name: 'the-past-increases-the-future-recedes'
}
]
}
]
2019-12-31 11:36:13 +08:00
export default {
2020-02-07 22:31:26 +08:00
components: {
bookIcon,
personIcon,
wineIcon
},
2019-12-31 11:36:13 +08:00
data () {
return {
2020-02-25 14:28:23 +08:00
defaultExpandedNames: ['dance-dance-dance', 'food'],
2020-06-17 12:45:10 +08:00
activeName: null,
menuItems
2019-12-31 11:36:13 +08:00
}
},
methods: {
2020-02-07 22:31:26 +08:00
handleSelect (value) {
this.$NMessage.info('Select: ' + JSON.stringify(value))
2019-12-31 11:36:13 +08:00
},
2020-02-25 14:28:23 +08:00
handleExpandedNamesChange (value) {
this.$NMessage.info('ExpandedNamesChange: ' + JSON.stringify(value))
2019-12-31 11:36:13 +08:00
}
}
2020-02-07 22:31:26 +08:00
}
2019-12-31 11:36:13 +08:00
```