Router簡單配置

新手筆記,如有錯(cuò)誤此再,煩請指導(dǎo)

1抑月、路由配置

main.js

import Vue from 'vue'
import App from './App.vue'
// 引入路由配置
import router from './router'
Vue.config.productionTip = false
new Vue({
    router,
    render: h => h(App),
}).$mount('#app')

router/index.js

import Vue from "vue";
import VueRouter from "vue-router";
// 引入組件
import index from "@/pages/index/index.vue"; 
import test from "@/pages/test/test.vue";
import header from "@/pages/index/header.vue";
import header2 from "@/pages/index/header2.vue";
import dataShow from "@/pages/test2/dataShow.vue";
// 要告訴 vue 使用 vueRouter
Vue.use(VueRouter);
const routes = [
    {
        path: "/", //默認(rèn)頁面
        redirect: '/index' //重定向 訪問a  url會(huì)被替換成b 匹配路由也為b  (默認(rèn)頁面設(shè)置)
    },
    {
        path: "/index",
        component: index,
        // component: ()=>import('@/pages/index/index.vue') 
        // component:resolve=>require(['@/pages/index/index.vue'],resolve)//懶加載  (懶加載不需要import組件引入)
        children: [//子路由配置 
            {
                path: '/index/header',
                component: header
            },
            {
                path: '/index/header2',
                component: header2
            }
        ]
    },
    {
        path: "/test",
        component: test
    },
    {
        path: "/dataShow",
        component: dataShow,
        meta:{
            keepAlive:true
        }
    }
]

var router = new VueRouter({
    routes
})
export default router;

App.vue

<template>
  <div id="app">
     <router-view v-if="!$route.meta.keepAlive"> <!--判斷meta.keepAlive是否存在,以此加載不同組件-->
         <!--重新渲染-->
     </router-view>
        
      <!--    router/index.js 路由配置中設(shè)置
              meta:{
                  keepAlive:true
              }
             與下面的keep-alive配合使用违崇,組件復(fù)用時(shí)不刷新
       -->
     <keep-alive>
         <router-view v-if="$route.meta.keepAlive">
             <!-- 保留緩存 -->
         </router-view>
     </keep-alive>
  </div>
</template>
<script>
export default {
  name: 'app',
  components:{}
}
</script>

默認(rèn)頁面 index.vue

<template>
    <div>
        <div>這是主頁</div>
        
        <router-link to="/index/header">
            點(diǎn)擊顯示子路由 頁面內(nèi)容1
        </router-link>
        <hr />
        <router-link to="/index/header2">
            點(diǎn)擊顯示子路由 頁面內(nèi)容2
        </router-link>
        
        <router-view style="color: #BB1166;"> 
            <!-- 子路由內(nèi)容顯示區(qū)域 -->
        </router-view>
        
        <div style="color: #0000FF;" @click="toTest">
            跳轉(zhuǎn)至重新渲染頁面
        </div>
        
        <div style="color: #0000FF;" @click="toDataShow">
            跳轉(zhuǎn)至保留狀態(tài)頁面
        </div>
        
    </div>
</template>
<script>
    export default{
        name:'index',
        data(){
            return{}
        },
        methods:{
            toTest(){
                this.$router.push({path:'/test'})
            },
            toDataShow(){
                this.$router.push({path:'/dataShow'})
            }
        }
    }
</script>

子路由組件header.vue

<template>
    <div>
        <div>
            主頁子內(nèi)容1
        </div>
    </div>
</template>
image.png

子路由組件header2.vue

<template>
    <div>
        <div>
            主頁子內(nèi)容2
        </div>
    </div>
</template>
image.png

跳轉(zhuǎn)至test.vue頁面


image.png

非keep-live頁面test.vue

<template>
    <div>
        <div>重復(fù)調(diào)用當(dāng)前組件數(shù)據(jù)會(huì) <span>進(jìn)行重置</span></div>
        <input type="text" v-model="data"></input>
        <div @click="toIndex">返回</div>
    </div>
</template>
<script>
    export default {
        name: 'index',
        data() {
            return {
                data: '3333' //默認(rèn)值333
            }
        }
    }
</script>

初始默認(rèn)值


image.png

修改輸入框值


image.png

image.png

同樣從主頁index.vue點(diǎn)擊 "跳轉(zhuǎn)至保留狀態(tài)頁面" 跳轉(zhuǎn)至dataShow.vue頁面 進(jìn)行測試

dataShow.vue

<template>
    <div>
        <div>重復(fù)調(diào)用當(dāng)前組件數(shù)據(jù)<span>不會(huì)改變</span></div>
        <input type="text" v-model="data"></input>
        <div @click="toIndex">返回</div>
    </div>
</template>
<script>
    export default {
        name: 'index',
        data() {
            return {
                data: '6666' //默認(rèn)值666
            }
        }
    }
</script>

默認(rèn)值為6666


image.png

修改輸入框值


image.png

image.png

文件路徑
image.png

2、當(dāng)重復(fù)調(diào)用同一組件時(shí)靴跛,vue不會(huì)重新創(chuàng)建缀雳,而是進(jìn)行復(fù)用。 此時(shí)會(huì)出現(xiàn)再次進(jìn)入同一個(gè)頁面時(shí) 之前的數(shù)據(jù)未清空(不會(huì)調(diào)用頁面鉤子函數(shù))

解決辦法

—(1)路由文件統(tǒng)一設(shè)置是否保持緩存
—(2)頁面中利用watch監(jiān)聽路由變化

watch: {
    '$route' (val) {//復(fù)用組件時(shí) 鉤子函數(shù)不會(huì)被調(diào)用 數(shù)據(jù)不會(huì)重新請求梢睛,通過監(jiān)聽路由參數(shù)變化判斷
      if(val.query.id){//如果路由參數(shù)存在就調(diào)用方法
          this.getData(val.query.id);//調(diào)用請求函數(shù)
      }
      // 對路由變化作出響應(yīng)...
    }
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肥印,一起剝皮案震驚了整個(gè)濱河市识椰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌深碱,老刑警劉巖腹鹉,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異敷硅,居然都是意外死亡功咒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門绞蹦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來力奋,“玉大人,你說我怎么就攤上這事幽七【耙螅” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵锉走,是天一觀的道長滨彻。 經(jīng)常有香客問我藕届,道長挪蹭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任休偶,我火速辦了婚禮梁厉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘踏兜。我一直安慰自己词顾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布碱妆。 她就那樣靜靜地躺著肉盹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疹尾。 梳的紋絲不亂的頭發(fā)上上忍,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機(jī)與錄音纳本,去河邊找鬼窍蓝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛繁成,可吹牛的內(nèi)容都是我干的吓笙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼巾腕,長吁一口氣:“原來是場噩夢啊……” “哼面睛!你這毒婦竟也來了絮蒿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤叁鉴,失蹤者是張志新(化名)和其女友劉穎歌径,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亲茅,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡回铛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了克锣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茵肃。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖袭祟,靈堂內(nèi)的尸體忽然破棺而出验残,到底是詐尸還是另有隱情,我是刑警寧澤巾乳,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布您没,位于F島的核電站,受9級特大地震影響胆绊,放射性物質(zhì)發(fā)生泄漏氨鹏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一压状、第九天 我趴在偏房一處隱蔽的房頂上張望仆抵。 院中可真熱鬧,春花似錦种冬、人聲如沸镣丑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莺匠。三九已至,卻和暖如春十兢,著一層夾襖步出監(jiān)牢的瞬間趣竣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工纪挎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留期贫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓异袄,卻偏偏與公主長得像通砍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354