先給大家看個(gè)以前寫的很蠢的代碼。
首先,很麻煩的把所有的路由的path寫了一遍,然后還得對(duì)照路徑寫要顯示的文字,然后在循環(huán)出來根據(jù)是否和當(dāng)前路由相等來展示。先不說每次添加新頁(yè)面都得來這個(gè)組件加一條對(duì)應(yīng)的對(duì)象,而且瀏覽器里因?yàn)槭?/span>v-show,并不是沒有加載而是display:none隱藏起來了。
所以打開toptext這個(gè)div的時(shí)候,他不是一個(gè),而是很多很多個(gè)。當(dāng)時(shí)忘了meta這個(gè)東西,看router的時(shí)候沒有很重視它,然后做新項(xiàng)目的時(shí)候想起來了meta這個(gè)東西,寫這篇文章來提醒下自己。
簡(jiǎn)單來說,meta就是路由身上攜帶的信息,你可以通過this.$route.meta來調(diào)用他,一般來說作用有三個(gè),1.就是攜帶頁(yè)面中用到的信息,信息與當(dāng)前路由綁定。2.可以通過路由信息來控制不同路由展示不同頁(yè)面3.還可以做登錄校驗(yàn)。我們?cè)撈恼轮饕脕硎褂玫谝粭l。
他的使用也非常簡(jiǎn)單,只需要和path和name平級(jí)就可以,meta是一個(gè)對(duì)象,當(dāng)你需要調(diào)用text的時(shí)候使用this.$route.meta.text就能再頁(yè)面中得到數(shù)據(jù)。
所以對(duì)我們之前的代碼做一個(gè)優(yōu)化。
直接取meta里的值,也不需要判斷,這樣瀏覽器只會(huì)出現(xiàn)一條數(shù)據(jù),而且對(duì)于后續(xù)的維護(hù)更加的方便。