效果预览
使用方式
<template>
<div class="example-box">
<p><strong>垂直菜单,可内嵌子菜单</strong></p>
<am-nav :selected.sync="selected" @update:selected="clickFn" vertical style="width:200px; margin-bottom:50px">
<am-nav-item name="music">
<div>nav 1</div>
</am-nav-item>
<am-sub-nav name="book">
<template slot="title">nav 2</template>
<am-nav-item name="faction">小说</am-nav-item>
<am-nav-item name="comic">动漫</am-nav-item>
<am-sub-nav name="classis">
<template slot="title">杂志期刊</template>
<am-nav-item name="technology">科技</am-nav-item>
<am-nav-item name="fashion">时尚</am-nav-item>
<am-sub-nav name="social">
<template slot="title">社会</template>
<am-nav-item name="11">社会 1</am-nav-item>
<am-nav-item name="22">社会 2</am-nav-item>
<am-nav-item name="33">社会 3</am-nav-item>
</am-sub-nav>
</am-sub-nav>
</am-sub-nav>
<am-nav-item name="sport">
<div>nav 3</div>
</am-nav-item>
</am-nav>
<p><strong>水平的顶部导航菜单</strong></p>
<am-nav :selected.sync="selected" style="width:260px;">
<am-nav-item name="music">
<div>nav 1</div>
</am-nav-item>
<am-sub-nav name="book">
<template slot="title">nav 2</template>
<am-nav-item name="faction">小说</am-nav-item>
<am-nav-item name="comic">动漫</am-nav-item>
<am-sub-nav name="classis">
<template slot="title">杂志期刊</template>
<am-nav-item name="technology">科技</am-nav-item>
<am-nav-item name="fashion">时尚</am-nav-item>
<am-sub-nav name="social">
<template slot="title">社会</template>
<am-nav-item name="11">社会 1</am-nav-item>
<am-nav-item name="22">社会 2</am-nav-item>
<am-nav-item name="33">社会 3</am-nav-item>
</am-sub-nav>
</am-sub-nav>
</am-sub-nav>
<am-nav-item name="sport">
<div>nav 3</div>
</am-nav-item>
</am-nav>
</div>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
export default {
data() {
return {
selected: 'sport'
}
},
watch: {
selected(newValue) {
if (newValue === 'sport') {
alert(newValue)
}
}
},
methods: {
clickFn(name) {
if (name === 'music') {
alert(name)
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
API
nav
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
selected | 选中的菜单项的 name 值,必需字段 | String | - | - |
vertical | 菜单类型,是否支持垂直 | Boolean | false | true |
@update:selected="clickFn" | 点击菜单时的回调 | Function | - | - |
subNav
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
name | 嵌套子菜单名字,必需字段 | String | - | - |
navItem
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
name | 子菜单名字,必需字段 | String | - | - |
TIP
点击菜单时,会触发 selected 字段值的更新,可在此时做相应的逻辑处理