JF0*_*001 1 node.js vue.js vue-router
我创建了一个 vue.js 路由器,并使用后面找到的结构插入在数组中找到的链接。这会水平显示链接。但是,我想插入下拉菜单,而不是简单的链接。可以使用这个或类似的结构以某种方式完成吗?
<nav style="text-align: right">
<router-link class="spacing" v-for="routes in links"
v-bind:key="routes.id"
:to="`${routes.page}`">{{routes.text}}</router-link>
</nav>
links: [
{
id: 0,
text: 'Buy',
page: '/Buy'
},
{
id: 1,
text: 'Sale',
page: '/Sale'
},
{
id: 2,
text: 'Transactions',
page: '/Transactions'
},
{
id: 3,
text: 'Help',
page: '/Help'
}
]
Run Code Online (Sandbox Code Playgroud)
是的,有几种方法可以做到这一点,尽管您必须循环不同于 的东西<router-link>,因为该组件呈现一个<a>标签。
我会首先调整您的 HTML 以允许您想要的下拉交互,无论是基于悬停还是基于单击,然后更改您的数据结构和循环以支持它。
我可能会做这样的事情:
<nav style="text-align: right">
<div
class="nav-item"
v-for="link in links" // Move loop to container of shown link and it's dropdown markup
>
<router-link
:key="link.id"
:to="`${link.page}`"
>
{{ link.text }}
</router-link>
<div class="nav-item-drawer">
<router-link
v-for="subLink in link.subLinks"
:key="subLink.id"
:to="`${subLink.page}`"
>
{{ subLink.text }}
</router-link>
</div>
</div>
</nav>
Run Code Online (Sandbox Code Playgroud)
具有以下数据结构:
links: [
{
id: 0,
text: 'Buy',
page: '/Buy',
subLinks: [
{
id: 0,
text: 'Buy Sublink 1',
page: '/Buy-more'
},
{
id: 1,
text: 'Buy Sublink 2',
page: '/Buy-less'
},
]
},
{
id: 1,
text: 'Sale',
page: '/Sale'
},
//...
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2702 次 |
| 最近记录: |