在Vue 項(xiàng)目中你可能會(huì)遇到的問題

一粥航、項(xiàng)目的登錄攔截及用戶權(quán)限訪問控制問題簿盅。

一個(gè)很常見的需求就是對(duì)未登錄的用戶進(jìn)行路由攔截和用戶的權(quán)限訪問祟身,如果你的項(xiàng)目之前是通過后臺(tái)控制訪問路由的菩貌,那么之前的后端現(xiàn)在可能需要在前端也需要控制了,由于我們用vue腳手架搭建的都是純前端的路由訪問欺缘,先看看我們的一般的項(xiàng)目路徑:

你可能會(huì)注意到Vue的項(xiàng)目路徑里都有這個(gè)#號(hào)栋豫,這是一個(gè)錨點(diǎn),說明我們的頁面靠后端可能控制不了你的路由了谚殊,這時(shí)候你需要進(jìn)行Vue的路由攔截丧鸯。(Vue-router 有個(gè)模式可以改為history ,但是改成這個(gè)模式后需要后端的服務(wù)有對(duì)應(yīng)的兼容嫩絮,否則會(huì)造成某些頁面刷新找不到頁面丛肢,而且不會(huì)出現(xiàn)404頁面,需要自己寫路由去匹配404頁面剿干,慎用) 蜂怎。這時(shí)候我們需要在router的里面添加meta字段進(jìn)行自定義一些信息。像下面這樣:

然后再main.js 加入全局的路由攔截置尔。

router.beforeEach((to,from, next) =>{if(to.meta.requireAuth){ //是否需要登錄攔截if(store.state.tokens.token){ //已登錄

next()

}else{

next({

path:'/',

query: {redirect : to.fullPath}

})

}

}else{

next()

}

})

同理杠步,用戶權(quán)限的認(rèn)證也可以這么做。另外需要注意的是榜轿,這個(gè)登錄狀態(tài)需要使用localstorage或者cookie保存幽歼,只存在store里面會(huì)導(dǎo)致頁面一刷新登錄狀態(tài)就沒了(當(dāng)然你可以在頁面mounted的時(shí)候去后臺(tái)獲取狀態(tài),然后改變store)谬盐。

二甸私、組件的異步加載(按需加載組件)

在平時(shí)的demo中,你可能不會(huì)遇見這個(gè)需求设褐,當(dāng)頁面很多颠蕴,組件很多的時(shí)候泣刹,你會(huì)發(fā)現(xiàn)你的頁面在首次加載的時(shí)候助析,異常的慢,這個(gè)是因?yàn)関ue首次加載的時(shí)候把可能一開始看不見的組件也一次加載了椅您,這個(gè)時(shí)候就需要對(duì)頁面優(yōu)化了外冀,就需要異步組件了。如何去寫異步組件呢掀泳,實(shí)際上很簡(jiǎn)單雪隧,只需要在你的路由index,js里加上require就可以了西轩,像下面這樣,這也是所謂的按需加載組件的實(shí)現(xiàn)原理脑沿。

{

path:'/home',

name:'Home',

component: function(resolve){

require(['@/views/home'], resolve)

}

}

三藕畔、多語種處理

你的項(xiàng)目可能是面向國(guó)際化的,此時(shí)你需要對(duì)項(xiàng)目進(jìn)行多語種處理庄拇。幸運(yùn)的是Vue已經(jīng)有了這個(gè)多語種的插件注服,vue-i18n .你可以像我這樣新建幾個(gè)多語種文件,

en.js

constmessagesEn ={

hello:'Hello world'}

exportdefaultmessagesEn

zh.js

constmessagesZh ={

hello:'你好措近、世界'}

exportdefaultmessagesZh

i18n.js

import messagesEnfrom'./en'import messagesZhfrom'./zh'constmessages ={

en: {

message: messagesEn

},

zh: {

message: messagesZh

}

}

exportdefaultmessages

然后再main.js 里引用

import VueI18nfrom'vue-i18n'import messagesfrom'./international/i18n'Vue.use(VueI18n)consti18n =newVueI18n({

locale:'en',//語言標(biāo)識(shí)messages

})

你可以在一個(gè)頁面里調(diào)用this.$i18n進(jìn)行語種切換

this.$i18n.locale? ='zh'

頁面里

{{ $t("message.hello") }}

js里面:

mounted: function(){

alert(this.$t('message.hello'))

}

加入這樣的標(biāo)簽就可以顯示國(guó)際化文件里的對(duì)應(yīng)此條了溶弟。

四、部署的生產(chǎn)環(huán)境上后和開發(fā)環(huán)境的樣式不一樣

這個(gè)問題我可是遭遇過瞭郑,快上線了居然發(fā)現(xiàn)npm run build 之后放到服務(wù)器端竟然樣式和開發(fā)環(huán)境的不一樣辜御,有點(diǎn)坑!

項(xiàng)目中使用了element-UI的組件屈张,然后自己重寫了部分樣式擒权,但是build之后卻被element-ui本身的樣式給覆蓋了,但在本地卻不會(huì)出現(xiàn)這個(gè)問題(這個(gè)不清楚為啥)阁谆,解決辦法是試試在組件里新建個(gè)

(不加scoped)菜拓,在這里面改樣式,或者在覆蓋elementUI 樣式的時(shí)候在class前面加上body 提高該樣式優(yōu)先級(jí)笛厦,就不會(huì)被覆蓋了纳鼎。另外自己的樣式要寫的規(guī)范,合乎正常的思維裳凸。這個(gè)也提醒我們贱鄙,代碼要提前放到服務(wù)端試一試。

五姨谷、代碼格式逗宁、編輯器不統(tǒng)一造成代碼格式混亂,注意優(yōu)化代碼

這個(gè)無關(guān)Vue梦湘,但是還是建議一個(gè)團(tuán)隊(duì)盡量統(tǒng)一代碼編輯器瞎颗,并且使用eslint進(jìn)行代碼格式檢查,否則會(huì)造成代碼在不同編輯器下顯示混亂捌议,很不容易隊(duì)友閱讀和修改哼拔,并且要時(shí)刻注意優(yōu)化自己的代碼,簡(jiǎn)化復(fù)雜的處理邏輯瓣颅,否則會(huì)給日后的維護(hù)造成極大的困難

六倦逐、圖片路徑問題

將圖片放入static文件夾中即可


哦了
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宫补,隨后出現(xiàn)的幾起案子檬姥,更是在濱河造成了極大的恐慌曾我,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件健民,死亡現(xiàn)場(chǎng)離奇詭異抒巢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)秉犹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門虐秦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凤优,你說我怎么就攤上這事悦陋。” “怎么了筑辨?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵俺驶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我棍辕,道長(zhǎng)暮现,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任楚昭,我火速辦了婚禮栖袋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抚太。我一直安慰自己塘幅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布尿贫。 她就那樣靜靜地躺著电媳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪庆亡。 梳的紋絲不亂的頭發(fā)上匾乓,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音又谋,去河邊找鬼拼缝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛彰亥,可吹牛的內(nèi)容都是我干的咧七。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼剩愧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼猪叙!你這毒婦竟也來了娇斩?” 一聲冷哼從身側(cè)響起仁卷,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤穴翩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锦积,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芒帕,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年丰介,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了背蟆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哮幢,死狀恐怖带膀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橙垢,我是刑警寧澤垛叨,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站柜某,受9級(jí)特大地震影響嗽元,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喂击,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一剂癌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翰绊,春花似錦佩谷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秤茅,卻和暖如春稚补,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背框喳。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工课幕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人五垮。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓乍惊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親放仗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子润绎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容