我已经开始使用布尔玛0.7.1 和 VueJs 2.5.17 。现在,我正在使用Vue路由器组件,并且我想在链接所代表的“页面”上将导航栏中的按钮设置为活动状态。
我的代码如下
<template>
<div id="app">
<nav class="navbar" role="navigation" aria-label="main navigation" id="nav">
<div class="container">
<div id="navMenu" class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item is-active">
<router-link to="/" exact>Home</router-link>
</a>
<a class="navbar-item">
<router-link to="/about" exact>About</router-link>
</a>
<a class="navbar-item">
<router-link to="/project" exact>Project</router-link>
</a>
</div>
<div class="navbar-end">
</div>
</div>
</div>
</nav>
<router-view/>
</div>
</template>
我知道路由器组件使用类router-link-active
标记活动链接。但是布尔玛可能需要将is-active
类应用于当前按钮。
我该如何自动化?我读过我可能应该将类is-active
绑定到router-link-active
上,但是我尝试过:
let routes = ...
new VueRouter({
mode: "history",
routes,
linkActiveClass: "is-active"
});
没有用。
任何提示都非常感谢。
答案 0 :(得分:1)
选中Bulma Guide,is-active
是一个修饰符,您必须将其与bulma元素一起使用。
大多数布尔玛元素具有其他样式。要应用它们,您只 需要追加修饰符类之一。 它们都以开头
is-
或has-
。
因此,将配置更改为linkActiveClass: 'tag is-active'
就可以了。
就像下面使用tag
的演示一样(您可以选择其他box
,button
等):
let UserView = Vue.component('user', {
template: '<div>I am User</div>'
})
let AdminView = Vue.component('admin', {
template: '<div>I am Admin</div>'
})
const router = new VueRouter({
linkActiveClass: 'tag is-active',
routes: [
{
path: '/Admin',
name: 'Admin',
component: AdminView
},
{
path: '/User',
name: 'User',
component: UserView
}
]
})
Vue.use(VueRouter)
app = new Vue({
el: "#app",
router
})
.loading {
background-color:red;
font-weight:bold;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id="app">
<h2>Test Vue Router</h2>
<router-link to="Admin">Admin</router-link>
<router-link to="User">User</router-link>
<router-view></router-view>
</div>
答案 1 :(得分:1)
您走对了对,对,“积极”是答案。在路由器中添加。
export const router = new VueRouter({
mode: 'history',
routes,
linkActiveClass: 'is-active'
})
并像构建HTML一样。
<nav class="navbar is-white">
<div class="container">
<div id="navMenu"
class="navbar-menu">
<div class="navbar-start">
<router-link :to="{ name: 'templateInfo' }"
class="navbar-item">Template info</router-link>
<router-link :to="{ name: 'thirdpartylibraries' }"
class="navbar-item">Third party libraries</router-link>
</div>
</div>
</div>
</nav>
这对我有用,所以我想您的div或类的顺序存在一些问题。