首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Vue中轻松切换“`selected`”样式?

如何在Vue中轻松切换“`selected`”样式?
EN

Stack Overflow用户
提问于 2018-03-07 03:20:12
回答 2查看 41关注 0票数 0

如何轻松切换selected样式?

在模板中,我有一个导航:

代码语言:javascript
复制
  <ul class="nav">
    <li class="nav-item selected" @click="clickLi(0)"><router-link to="/">首页</router-link></li>
    <li class="nav-item" @click="clickLi(1)"><router-link to="/data-center">数据中心</router-link></li>
  </ul>

在方法上:

代码语言:javascript
复制
clickLi(page_num){
    // there I have to clear all the li `selected` style, then add the style to the page_num.
}

Vue中,是否有更好的方法来实现这种效果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-07 03:34:21

看看Cass和样式绑定文档

下面的伪示例,还向vue-路由器添加了一些快捷方式,以避免路由器-链路组件,您只需将:绑定到<li>即可。

代码语言:javascript
复制
<li
   v-for="(item, $index) in routes" 
   @click="selectedIndex = $index"
   :class="{'item-selected': $index == selectedIndex}"
   :to="item.path">{{ item.name }}</li>


// on component
data() {
  return { 
    selectedIndex: null,
    routes: [{path:'/', name: 'home'},{path:'/data-center', name:'data center'}] 
  }
}
票数 0
EN

Stack Overflow用户

发布于 2018-03-07 03:25:38

在数据中,返回一个selected_num参数:

代码语言:javascript
复制
data() {
    return {
        selected_num: 0
    }
}

在模板中:

代码语言:javascript
复制
 <ul class="nav">
    <li class="nav-item" :class="selected_num===0 ? 'selected' : ''" @click="selected_num=0"><router-link to="/">首页</router-link></li>
    <li class="nav-item" :class="selected_num===1 ? 'selected' : ''" @click="selected_num=1"><router-link to="/data-center">数据中心</router-link></li>
  </ul>

你甚至不需要这个方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49143560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档