【问题标题】:Bootstrap nav pills for VueJS vue-routerVueJS vue-router 的引导导航药丸
【发布时间】:2018-09-12 11:55:21
【问题描述】:

在 bootstrap 官方文档中,我看到了一套很酷的导航药丸。 就是这样。

<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
  <a class="nav-link active" id="v-pills-home-tab" data-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">Home</a>
  <a class="nav-link" id="v-pills-profile-tab" data-toggle="pill" href="#v-pills-profile" role="tab" aria-controls="v-pills-profile" aria-selected="false">Profile</a>
  <a class="nav-link" id="v-pills-messages-tab" data-toggle="pill" href="#v-pills-messages" role="tab" aria-controls="v-pills-messages" aria-selected="false">Messages</a>
  <a class="nav-link" id="v-pills-settings-tab" data-toggle="pill" href="#v-pills-settings" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</a>
</div>
<div class="tab-content" id="v-pills-tabContent">
  <div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab">...</div>
  <div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab">...</div>
  <div class="tab-pane fade" id="v-pills-messages" role="tabpanel" aria-labelledby="v-pills-messages-tab">...</div>
  <div class="tab-pane fade" id="v-pills-settings" role="tabpanel" aria-labelledby="v-pills-settings-tab">...</div>
</div>

这是我目前用于导航的代码。

<ul class="nav flex-column">
          <li class="nav-item">
            <router-link to="/studentDashboard">Dashboard</router-link>
          </li>

          <li class="nav-item">
            <router-link to="/buyPapers">Buy papers</router-link>
          </li>

          <li class="nav-item" >
            <router-link to="/myPapers">My papers</router-link>
          </li>

  </ul>

我应该改变什么才能在这段代码中使用那个药丸?

【问题讨论】:

    标签: vue.js bootstrap-4 vue-router


    【解决方案1】:
    <router-link> by defult is rendered as an achor tag `<a>`.
    

    Bootstap 4 nav-pills 有一个 &lt;a&gt; 标签,其类为 nav-link。如下:

    <ul class="nav nav-pills">
      <li class="nav-item">
        <a class="nav-link active" href="#">Active</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      </li>
    </ul>
    

    所以只需将该类添加到您的&lt;router-link&gt;

    <li class="nav-item">
      <router-link class="nav-link" active-class="active" to="/studentDashboard">Dashboard</router-link>
    </li>
    

    要将 active 类添加到代表当前活动路线的导航药丸中,请在每个 `

    上添加 active-class 属性

    【讨论】:

      【解决方案2】:

      使用 Vue 路由器控制显示活动选项卡和选项卡内容,而不是 Bootstrap。每个tab-pane 都应该有active 类,因为路由器被用来控制路由器视图的显示...

      const home = { template: '<div class="tab-pane active">Home...</div>' }
      const profile = { template:'<div class="tab-pane active">Profile.. </div>' }
      const more  = { template:'<div class="tab-pane active">More..</div>' }
      

      然后,使用一种方法有条件地在每个导航药丸上设置active 类...

      methods: {
            activeClass: function (...names) {
              for (let name of names) {
                  if (name == this.$route.name)
                      return 'active';
            }
          }    
      }
      

      HTML

      <ul class="nav nav-pills">
          <li class="nav-item">
               <router-link to="/home" class="nav-link" :class="activeClass('home')">Home</router-link>
          </li>
          <li class="nav-item">
               <router-link to="/profile" class="nav-link" :class="activeClass('profile')">Profile</router-link>
          </li>
          <li class="nav-item">
               <router-link to="/more" class="nav-link" :class="activeClass('more')">More</router-link>
          </li>
      </ul>
      <div class="tab-content">
            <router-view></router-view>
      </div>
      

      演示:https://codeply.com/go/WVx1HswJ83

      【讨论】:

      • id='app' 分配给文件的根对我来说是:&lt;body&gt;&lt;div id="app"&gt;
      【解决方案3】:

      这对我有用。

      <b-nav-item to="/home" href="#">Home</b-nav-item>
      <b-nav-item to="/faq" href="#">FAQ</b-nav-item>
      <b-nav-item to="/contact" href="#">Contact</b-nav-item>
      

      【讨论】:

      • id='app' 分配给文件的根对我来说是:&lt;body&gt;&lt;div id="app"&gt;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      相关资源
      最近更新 更多