溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

發(fā)布時(shí)間:2021-04-26 13:37:19 來源:億速云 閱讀:315 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

為什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創(chuàng)建可維護(hù)性和可測(cè)試性更強(qiáng)的代碼庫,Vue允許可以將一個(gè)網(wǎng)頁分割成可復(fù)用的組件,每個(gè)組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網(wǎng)頁中相應(yīng)的地方,所以越來越多的前端開發(fā)者使用vue。

具體代碼如下所示:

<nav>
    <!-- 導(dǎo)航欄 -->
   <div class="indexNavOut">
    <div class="indexNav">
    <ul class="navLi">
     <li @click="checkNav()" ><router-link to="/home">了解海華教育(視頻)</router-link><!--<a href="#">了解海華教育(視頻)</a>--></li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/home','active2':Index=='#/'}">
      <router-link to="/home">首頁</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/synopsis'}"><router-link to="/synopsis">學(xué)校簡(jiǎn)介</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/major'}"><router-link to="/major">專業(yè)介紹</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/campus'}"><router-link to="/campus">校園風(fēng)采</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/news'}"><router-link to="/news">新聞資訊</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/enrollment'}"><router-link to="/enrollment">招生信息</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/employment'}"><router-link to="/employment">就業(yè)中心</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/enlist'}"><router-link to="/enlist">在線報(bào)名</router-link>
     </li>
     <li @click="checkNav()" v-bind:class="{'active':Index=='#/contact'}"><router-link to="/contact">聯(lián)系我們</router-link>
     </li>
    </ul>
    </div>
   </div>
   </nav>

css:

/* 導(dǎo)航欄 */
.indexNavOut{
 background-color: #486B8A;
 height: 60px;
}
.indexNav{
 width: 80%;
 margin: 0 auto;
}
.navLi{
 display: flex;
}
.navLi li:nth-child(1){
 flex: 1.8;
}
.navLi li{
 flex: 1;
}
.navLi li a{
 text-decoration: none;
 color: #fff;
 font-size: 16px;
 padding-bottom: 17px;
}
.indexNav .icon{
 width: 230px;
 margin-top: 10px;
}
.indexNav .icon img{
 width: 100%;
}
.navLi li {
 height: 60px;
 line-height: 60px;
 position: relative;
}
.navLi li.active a{
 border-bottom: 3px solid #E96463;
}
.navLi li.active2 a{
 border-bottom: 3px solid #E96463;
}
.navLi li:last-child:after{
 border-right: none;
}
.navLi li .line{
 width: 20px;
 height: 3px;
 background: #E96463;
 border: none;
 position: absolute;
 /*top: -14px;*/
 /*right: -32px;*/
 left: 50px;
 top: 45px; 
 z-index: 100;
}

js:

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

 main.js代碼:

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

import Vuex from 'vuex'
Vue.use(Vuex);
const store = new Vuex.Store({
 state: {
 majorDetail: false,
 Index: document.location.hash,//導(dǎo)航條跳轉(zhuǎn)路由樣式控制
 },
 mutations: {
 //控制專業(yè)介紹詳情顯示隱藏
 updatemajorDetail(state, majorDetail) {
  state.majorDetail = majorDetail;
 },
 updateIndex(state, Index) {
  state.Index = Index;
 }
 }
});

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

效果圖:

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

現(xiàn)在在這個(gè)頁面里點(diǎn)擊了解更多的時(shí)候跳轉(zhuǎn)到新聞資訊頁面,然后然后state里的值,然后改變當(dāng)前的url以及導(dǎo)航選中新聞資訊。

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由

感謝各位的閱讀!關(guān)于“vue如何使用vuex實(shí)現(xiàn)首頁導(dǎo)航切換不同路由”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI