前端脫坑記-查漏補(bǔ)缺,匯總大家高頻問題與不靠譜解決方案(上)

前言

文章內(nèi)容覆蓋范圍,芝麻綠豆的破問題都有,不止于vue;

給出的是方案,但不是手把手一字一句的給你說十萬個(gè)為什么!

有三類人不適合此篇文章:

"喜歡站在道德制高點(diǎn)的圣母婊" -- 適合去教堂

"無理取鬧的鍵盤俠" -- 國際新聞版塊歡迎你去

"有一定基礎(chǔ)但又喜歡逼逼的人"

得得得,老子知道你厲害了,你好牛逼,這些問題那么簡單,都是小白看的

這種傻瓜文,簡直浪費(fèi)老子的時(shí)間!

對(duì)于以上三類人,走吧,這里不是你來裝逼的地方.

你們也不值得看小編花那么多時(shí)間去匯總的水文.

學(xué)習(xí)一些新東西.若是有人給匯總那么多問題(指明方向和一定的解決法子).

不用讓我去各種搜索,匯總,總結(jié),學(xué)習(xí)時(shí)間起碼可以節(jié)省一半!

文章匯總來自群里高頻詢問的xxx及給出不靠譜的解決方案

曼氛,

學(xué)習(xí)交流前端方面的技術(shù)刊懈,打算深入了解這個(gè)行業(yè)的朋友绪钥,可以加下小編的前端學(xué)習(xí)裙 330336289 邀請(qǐng)碼(寂靜),不管你是小白還是大牛凿叠,小編我都?xì)g迎,不定期更新最新的教程和學(xué)習(xí)方法嚼吞,包括小編自己整理的一份2018最新的前端資料和0基礎(chǔ)入門教程盒件,歡迎初學(xué)和進(jìn)階中的小伙伴。每天晚上20:00都有大咖開直播給大家分享前端學(xué)習(xí)知識(shí)和路線方法誊薄,歡迎小伙伴可以加入交流履恩。

問題匯總

Q:安裝超時(shí)(install timeout)

方案有這么些:

cnpm : 國內(nèi)對(duì)npm的鏡像版本

/*

cnpm website: https://npm.taobao.org/

*/

npm install -g cnpm --registry=https://registry.npm.taobao.org

// cnpm 的大多命令跟 npm 的是一致的,比如安裝,卸載這些

yarn 和 npm 改源大法

npm config : npm config set registry https://registry.npm.taobao.org

yarn config : yarn config set registry https://registry.npm.taobao.org

Q:安裝一些需要編譯的包:提示沒有安裝python、build失敗等因?yàn)橐恍?npm 的包安裝需要編譯的環(huán)境,mac 和 linux 都還好,大多都齊全window 用戶依賴 visual studio 的一些庫和python 2+,

windows的小伙伴都裝上:

windows-build-tools

python 2.x

Q:can't not find 'xxModule' - 找不到某些依賴或者模塊

這種情況一般報(bào)錯(cuò)信息可以看到是哪個(gè)包拋出的信息.

一般卸載這個(gè)模塊,安裝重新安裝下即可.

Q:data functions should return an object

這個(gè)問題是 Vue 實(shí)例內(nèi),單組件的data必須返回一個(gè)對(duì)象;如下

請(qǐng)點(diǎn)擊此處輸入圖片描述

為什么要 return 一個(gè)數(shù)據(jù)對(duì)象呢?

官方解釋如下: data 必須聲明為返回一個(gè)初始數(shù)據(jù)對(duì)象的函數(shù)呢蔫,因?yàn)榻M件可能被用來創(chuàng)建多個(gè)實(shí)例切心。如果 data 仍然是一個(gè)純粹的對(duì)象飒筑,則所有的實(shí)例將共享引用同一個(gè)數(shù)據(jù)對(duì)象!

簡言之,組件復(fù)用下,不會(huì)造成數(shù)據(jù)同時(shí)指向一處,造出牽一發(fā)而動(dòng)全身的破問題...

Q:我給組件內(nèi)的原生控件添加事件,怎么不生效了!!!

Q:我用了 axios , 為什么 IE 瀏覽器不識(shí)別(IE9+)

那是因?yàn)?IE 整個(gè)家族都不支持 promise, 解決方案:

npm install es6-promise

// 在 main.js 引入即可

// ES6的polyfill

require("es6-promise").polyfill();

Q:我在函數(shù)內(nèi)用了this.xxx=,為什么拋出Cannot set property 'xxx' of undefined;這又是this的套路了..this是和當(dāng)前運(yùn)行的上下文綁定的...

一般你在axios或者其他 promise , 或者setInterval 這些默認(rèn)都是指向最外層的全局鉤子.

簡單點(diǎn)說:"最外層的上下文就是 window,vue內(nèi)則是 Vue 對(duì)象而不是實(shí)例!";

解決方案:

暫存法: 函數(shù)內(nèi)先緩存 this , let that = this;(let是 es6, es5用 var)

箭頭函數(shù): 會(huì)強(qiáng)行關(guān)聯(lián)當(dāng)前運(yùn)行區(qū)域?yàn)?this 的上下文;

Q:我看一些Vue教程有這么些寫法,是什么意思@click.prevent,v-demo.a.b;就拿這兩個(gè)例子來說吧.

@click.prevent : 事件+修飾符 , 作用就是點(diǎn)擊但又阻止默認(rèn)行為

v-demo.a.b: 自定義指令+修飾符. 具體看你什么指令了,修飾符的作用大多是給事件增加一些確切的拓展功能

比如阻止事件冒泡,阻止默認(rèn)行為,訪問到原生控件,結(jié)合鍵盤快捷鍵等等

可以自定義修飾符么?也是可以的..

可以通過全局 config.keyCodes 對(duì)象自定義鍵值修飾符別名:

Q:為什么我的引入的小圖片渲染出來卻是 data:image/png;base64xxxxxxxx這個(gè)是 webpack 里面的對(duì)應(yīng)插件處理的.

對(duì)于小于多少 K 以下的圖片(規(guī)定的格式)直接轉(zhuǎn)為 base64格式渲染;

具體配置在webpack.base.conf.js里面的 rules里面的 url-loader

這樣做的好處:在網(wǎng)速不好的時(shí)候先于內(nèi)容加載和減少http的請(qǐng)求次數(shù)來減少網(wǎng)站服務(wù)器的負(fù)擔(dān)

Q:Component template shold contain exactly one root element.If you are useing v-if on multiple elements , xxxxx

大體就是說,單組件渲染 DOM 區(qū)域必須要有一個(gè)根元素,不能出現(xiàn)同級(jí)元素.可以用v-if和v-else-if指令來控制其他元素達(dá)到并存的狀態(tài)

換個(gè)直白的解釋,就是有一個(gè)唯一的父類,包裹者;

比如一個(gè) div(父包含塊) 內(nèi)部多少個(gè)同級(jí)或者嵌套都行,但是最外層元素不能出現(xiàn)同級(jí)元素!!!!

Q:跨域問題怎么破!比如No 'Access-Control-Allow-Origin' header is present on the requested resource.

這種問題老生常談了,我就不細(xì)說了..大體說一下;

1: CORS , 前后端都要對(duì)應(yīng)去配置,IE10+

2: nginx 反向代理,一勞永逸 <-- 線上環(huán)境可以用這個(gè)

線下開發(fā)模式,比如你用了vue-cli, 里面的 webpack 有引入了proxyTable這么個(gè)玩意,也可以做接口反向代理

請(qǐng)點(diǎn)擊此處輸入圖片描述

當(dāng)然還有依舊堅(jiān)挺的jsonp大法!不過局限性比較多,比較適合一些特殊的信息獲取!

Q:我需要遍歷的數(shù)組值更新了,值也賦值了,為什么視圖不更新!!!

那是因?yàn)橛芯窒扌园?官方文檔也說的很清楚,只有一些魔改的之后的方法提供跟原生一樣的使用姿勢(shì)(卻又可以觸發(fā)視圖更新);

一般我們更常用(除了魔改方法)的手段是使用:this.$set(obj,item,value);

Q:為什么我的組件間的樣式不能繼承或者覆寫啊!!!單組件開發(fā)模式下,請(qǐng)確認(rèn)是否開啟了 CSS模塊化功能!!

也就是scoped(vue-cli 里面配置了,只要加入這個(gè)屬性就自動(dòng)啟用)

為什么不能繼承或者覆寫呢,那時(shí)因?yàn)槊總€(gè)類或者 id 乃至標(biāo)簽都會(huì)給自動(dòng)在css后面添加hash!

比如

// 寫的時(shí)候是這個(gè)

.trangle{}

// 編譯過后,加上了 hash

.trangle[data-v-1ec35ffc]{}

這些都是在 css-loader 里面配置!!!

Q:路由模式改為history后,除了首次啟動(dòng)首頁沒報(bào)錯(cuò),刷新訪問路由都報(bào)錯(cuò)!

必須給對(duì)應(yīng)的服務(wù)端配置查詢的主頁面..也可以認(rèn)為是主路由入口的引導(dǎo)

官方文檔也有,為毛總有人不喜歡去看文檔,總喜歡做伸手黨....wtf

Q:我想攔截頁面,或者在頁面進(jìn)來之前做一些事情,可以么?

Of course !!

各種路由器的鉤子!!

當(dāng)然,記憶滾動(dòng)的位置也可以做到,詳情翻翻里面的文檔

結(jié)語

問題匯總分三部分發(fā)绽昏,未完待續(xù)协屡,關(guān)注我后續(xù)補(bǔ)上.

小伙伴們也可以留言補(bǔ)充,我會(huì)及時(shí)跟進(jìn)....

不過現(xiàn)在的新人好浮躁,一言不合就做伸手黨...不愿花時(shí)間去折騰.無解.....

請(qǐng)把這篇文章分享給正在學(xué)習(xí)前端的朋友,希望該篇文章可以幫到一些小伙伴節(jié)省時(shí)間全谤,加快開發(fā)肤晓。

最后祝所有程序員都能夠走上人生巔峰,讓代碼將夢(mèng)想照進(jìn)現(xiàn)實(shí)认然,有不懂的問題可以隨時(shí)問我补憾,工作不忙的時(shí)候希望可以給大家解惑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卷员,一起剝皮案震驚了整個(gè)濱河市盈匾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毕骡,老刑警劉巖削饵,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異未巫,居然都是意外死亡窿撬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門叙凡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劈伴,“玉大人,你說我怎么就攤上這事狭姨≡桌玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵饼拍,是天一觀的道長赡模。 經(jīng)常有香客問我,道長师抄,這世上最難降的妖魔是什么漓柑? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮叨吮,結(jié)果婚禮上辆布,老公的妹妹穿的比我還像新娘。我一直安慰自己茶鉴,他們只是感情好锋玲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涵叮,像睡著了一般惭蹂。 火紅的嫁衣襯著肌膚如雪伞插。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天盾碗,我揣著相機(jī)與錄音媚污,去河邊找鬼。 笑死廷雅,一個(gè)胖子當(dāng)著我的面吹牛耗美,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播航缀,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼商架,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了芥玉?” 一聲冷哼從身側(cè)響起甸私,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎飞傀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诬烹,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砸烦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绞吁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幢痘。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖家破,靈堂內(nèi)的尸體忽然破棺而出颜说,到底是詐尸還是另有隱情,我是刑警寧澤汰聋,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布门粪,位于F島的核電站,受9級(jí)特大地震影響烹困,放射性物質(zhì)發(fā)生泄漏玄妈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一髓梅、第九天 我趴在偏房一處隱蔽的房頂上張望拟蜻。 院中可真熱鬧,春花似錦枯饿、人聲如沸酝锅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搔扁。三九已至爸舒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阁谆,已是汗流浹背碳抄。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留场绿,地道東北人剖效。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像焰盗,于是被迫代替她去往敵國和親璧尸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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