Vue常見的面試題匯總

1、V-if和V-show的區(qū)別

答案:區(qū)別就是dom元素是否掛載了鹃祖,v-show是dom樹上有內(nèi)容溪椎,不顯示,display:none恬口;v-if是dom樹上無(wú)內(nèi)容

2校读、Vue組件間是怎么通訊的

答案:1、父組件-->子組件

? 方式:父組件給子組件綁定屬性祖能,子組件通過(guò)props屬性來(lái)接收傳遞的數(shù)據(jù)

? 注意:屬性的值必須在組件中通過(guò)props屬性指定歉秫,屬性名必須與父組件中定義的一致。props可以是一個(gè)數(shù)組或?qū)ο?/p>

? 2养铸、子組件-->父組件

? 方式:在父組件中聲明一個(gè)接受數(shù)據(jù)的函數(shù),父組件給子組件綁定事件雁芙,子組件通過(guò)$emit觸發(fā)事件,并且可在此時(shí)傳遞參數(shù)钞螟,

? 父組件通過(guò)定義好的監(jiān)聽事件接收參數(shù)(注意參數(shù)是什么 )

? 3兔甘、非父子組件間的通訊

? 方式: 創(chuàng)建一個(gè)新Vue的實(shí)例,讓各個(gè)兄弟共用同一個(gè)事件機(jī)制鳞滨。(關(guān)鍵點(diǎn))

? 傳遞數(shù)據(jù)方洞焙,通過(guò)事件觸發(fā)$emit(方法名, 傳遞的數(shù)據(jù))拯啦。

? 接收數(shù)據(jù)方澡匪,在mounted() 鉤子函數(shù)(掛載實(shí)例) 中 觸發(fā)事件$on(方法名, callback(接收數(shù)據(jù)的數(shù)據(jù)))褒链,

? 此時(shí)callback函數(shù)中的this已經(jīng)發(fā)生了改變唁情, 可以使用箭頭函數(shù)。

? 對(duì)于大型復(fù)雜的項(xiàng)目碱蒙,采用vuex 狀態(tài)管理更適合

3荠瘪、常見指令

答案:

? v-text:更新DOM對(duì)象的 textContent

? v-html:更新DOM對(duì)象的 innerHTML

? v-bind:當(dāng)表達(dá)式的值改變時(shí),將其產(chǎn)生的連帶影響赛惩,響應(yīng)式地作用于 DOM

? v-on:綁定事件

? v-for:基于源數(shù)據(jù)多次渲染元素或模板塊

? v-if:根據(jù)表達(dá)式的值的真假條件哀墓,銷毀或重建元素

? v-show:根據(jù)表達(dá)式之真假值,切換元素的 display CSS 屬性

? v-pre:跳過(guò)這個(gè)元素和它的子元素的編譯過(guò)程喷兼±捍拢可以用來(lái)顯示原始 Mustache 標(biāo)簽。跳過(guò)大量沒有指令的節(jié)點(diǎn)會(huì)加快編譯

? v-once:只渲染元素和組件一次季惯。隨后的重新渲染吠各,元素/組件及其所有的子節(jié)點(diǎn)將被視為靜態(tài)內(nèi)容并跳過(guò)臀突。這可以用于優(yōu)化更新性能

4、怎么定義組件

答案:

? 全局定義:Vue.component(組件名, {template: 模板字符串})

? 局部定義:components:{組件名: {template: 模板字符串}}

? 單文件組件:包含template贾漏,script候学,style三部分

5、vue路由是怎么做的(路由的原理)

答案:瀏覽器URL中的哈希值(# hash)和 component的對(duì)應(yīng)關(guān)系纵散,一個(gè)哈希值對(duì)應(yīng)一個(gè)組件

6梳码、怎么請(qǐng)求數(shù)據(jù)的

答案:用axios發(fā)送請(qǐng)求

7、談?wù)劷M件化和模塊化的區(qū)別

答案:

? 組件化:組件化就是基于可重用的目的伍掀,將一個(gè)大的軟件系統(tǒng)按照分離關(guān)注點(diǎn)的形式掰茶,拆分成多個(gè)獨(dú)立的組件,主要目的就是減少耦合蜜笤。

? 一個(gè)獨(dú)立的組件可以是一個(gè)軟件包濒蒋、web服務(wù)、web資源或者是封裝了一些函數(shù)的模塊把兔。

? 這樣沪伙,獨(dú)立出來(lái)的組件可以單獨(dú)維護(hù)和升級(jí)而不會(huì)影響到其他的組件。

? 模塊化:模塊化的目的在于將一個(gè)程序按照其功能做拆分垛贤,分成相互獨(dú)立的模塊焰坪,

? 以便于每個(gè)模塊只包含與其功能相關(guān)的內(nèi)容,模塊之間通過(guò)接口調(diào)用聘惦。

? 將一個(gè)大的系統(tǒng)模塊化之后,每個(gè)模塊都可以被高度復(fù)用儒恋。

? 區(qū)別:模塊化的目的是為了重用善绎,模塊化后可以方便重復(fù)使用和插撥到不同的平臺(tái),不同的業(yè)務(wù)邏輯過(guò)程中诫尽。

? 組件化的目的是為了解耦禀酱,把系統(tǒng)拆分成多個(gè)組件,分離組件邊界和責(zé)任牧嫉,便于獨(dú)立升級(jí)和維護(hù)剂跟。

8、Vue的數(shù)據(jù)雙向綁定原理(如果更深層的話就要涉及到訂閱發(fā)布者模式了可以自己看)

答案:

? Vue在初始化實(shí)例的時(shí)候酣藻,會(huì)把data中所有的數(shù)據(jù)曹洽,用Object.defineProperty方法全部加給vm對(duì)象,

? 這個(gè)時(shí)候辽剧,vm對(duì)象中的數(shù)據(jù)就有了set和get方法送淆,set這個(gè)函數(shù)會(huì)在屬性被賦值的時(shí)候自動(dòng)調(diào)用,

? get這個(gè)函數(shù)會(huì)在屬性被獲取值的時(shí)候自動(dòng)調(diào)用怕轿,用戶獲取到的屬性的值偷崩,其實(shí)就是get方法的返回值辟拷。也就能實(shí)現(xiàn)雙向綁定了

9、Vue全家桶有些什么

? vue:主要Vue

? vue-router:關(guān)于路由方面的配置

? vuex:數(shù)據(jù)共享和緩存用

? vue-resource:于后臺(tái)交互用(現(xiàn)在改為axios 但是axios不是Vue里面的東西)

? vue-cli:快速創(chuàng)建項(xiàng)目的腳手架

答案:

10阐斜、Filter過(guò)濾器

作用:

? 文本數(shù)據(jù)格式化 , 也就是: 將數(shù)據(jù)按照我們指定的一種格式輸出(可以直接說(shuō)過(guò)濾)

? 過(guò)濾器可以用在兩個(gè)地方:{{}}和 v-bind 表達(dá)式

? 兩種過(guò)濾器:1 全局過(guò)濾器 2 局部過(guò)濾器

11衫冻、Vue生命周期

一個(gè)組件從開始到最后消亡所經(jīng)歷的各種狀態(tài),就是一個(gè)組件的生命周期

? beforeCreate()

? 說(shuō)明:在實(shí)例初始化之后谒出,數(shù)據(jù)觀測(cè) (data observer) 和 event/watcher 事件配置之前被調(diào)用

? 注意:此時(shí)隅俘,無(wú)法獲取 data中的數(shù)據(jù)、methods中的方法

? created()

? 說(shuō)明:這是一個(gè)常用的生命周期到推,可以調(diào)用methods中的方法考赛、改變data中的數(shù)據(jù)

? beforeMounted()

? 說(shuō)明:在掛載開始之前被調(diào)用,此時(shí)無(wú)法獲取到el中的DOM元素

? mounted()

? 說(shuō)明:此時(shí),vue實(shí)例已經(jīng)掛載到頁(yè)面中莉测,可以獲取到el中的DOM元素颜骤,進(jìn)行DOM操作

? beforeUpdated()

? 說(shuō)明:數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬 DOM 重新渲染和打補(bǔ)丁之前捣卤。你可以在這個(gè)鉤子中進(jìn)一步地更改狀態(tài)忍抽,這不會(huì)觸發(fā)附加的重渲染過(guò)程。

? 注意:此處獲取的數(shù)據(jù)是更新后的數(shù)據(jù)董朝,但是獲取頁(yè)面中的DOM元素是更新之前的

? updated()

? 說(shuō)明:組件 DOM 已經(jīng)更新鸠项,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作

? beforeDestroy()

? 說(shuō)明:實(shí)例銷毀之前調(diào)用。在這一步子姜,實(shí)例仍然完全可用祟绊。

? 使用場(chǎng)景:實(shí)例銷毀之前,執(zhí)行清理任務(wù)哥捕,比如:清除定時(shí)器等

? destroyed()

? 說(shuō)明:Vue 實(shí)例銷毀后調(diào)用牧抽。調(diào)用后,Vue 實(shí)例指示的所有東西都會(huì)解綁定遥赚,所有的事件監(jiān)聽器會(huì)被移除扬舒,所有的子實(shí)例也會(huì)被銷毀。

12凫佛、小程序和vue的區(qū)別和聯(lián)系

? 區(qū)別:微信小程序是運(yùn)行在微信里的APP讲坎,vue是一個(gè)流行框架

? 聯(lián)系:微信小程序借鑒了vue的部分語(yǔ)法,但也有一些區(qū)別愧薛,例如:顯示隱藏元素晨炕,v-show和hidden;事件處理:v-on和bindtap

13厚满、Vuex的使用和五個(gè)核心

五個(gè)核心:state , getter , mutation , action , module

14府瞄、vue中Tab欄怎么實(shí)現(xiàn)

? 每一個(gè)tab標(biāo)題對(duì)應(yīng)一個(gè)tab組件,并且每一個(gè)標(biāo)題都有一個(gè)點(diǎn)擊事件和傳入的參數(shù),在點(diǎn)擊的時(shí)候tab組件接收參數(shù)來(lái)控制顯示和隱藏

? 也可以用路由實(shí)現(xiàn)遵馆,適用于全屏的tab

15鲸郊、在vue中獲取dom元素

? 在vue中可以通過(guò)給標(biāo)簽加ref屬性,就可以在js中利用$refs去引用它货邓,從而操作該dom元素

16秆撮、vue單頁(yè)面 首屏加載怎么優(yōu)化

  1. 按需加載

  2. 基于DllPlugin 和 DllReferencePlugin 的 webpack 構(gòu)建優(yōu)化

  3. 異步組件

  4. 優(yōu)化組件加載時(shí)機(jī)

18、什么是MVVM换况。分別描述一下你對(duì)MVVM優(yōu)缺點(diǎn)的理解

? 即:Model-View-ViewModel 它是一種基于前端開發(fā)的架構(gòu)模式,其核心是提供對(duì)View 和 ViewModel 的雙向數(shù)據(jù)綁定职辨,

? 這使得ViewModel 的狀態(tài)改變可以自動(dòng)傳遞給 View,即所謂的數(shù)據(jù)雙向綁定戈二。

? MVVM不僅簡(jiǎn)化了業(yè)務(wù)與界面的依賴關(guān)系舒裤,還優(yōu)化了數(shù)據(jù)頻繁更新的解決方案,甚至可以說(shuō)提供了一種有效的解決模式觉吭。

? MVVM用來(lái)做服務(wù)端是極其不適用的腾供,因?yàn)椋壕W(wǎng)絡(luò)資源成本過(guò)高 開發(fā)成本過(guò)高

19、vue.js的view-model是如何工作的

? Vue.js 是一個(gè)提供了 MVVM 風(fēng)格的雙向數(shù)據(jù)綁定的 Javascript 庫(kù)鲜滩,專注于View 層伴鳖。

? 它的核心是 MVVM 中的 VM,也就是 ViewModel徙硅。 ViewModel負(fù)責(zé)連接 View 和 Model榜聂,

? 保證視圖和數(shù)據(jù)的一致性,這種輕量級(jí)的架構(gòu)讓前端開發(fā)更加高效嗓蘑、便捷须肆。

20、vue中$set什么時(shí)候用

? 生成vue實(shí)例后桩皿,當(dāng)再次給數(shù)據(jù)賦值時(shí)休吠,有時(shí)候并不會(huì)自動(dòng)更新到視圖上去,此時(shí)使用 vm.$set實(shí)例方法业簿,這也是全局 Vue.set方法的別名

21、Vue-cli的src文件夾中有哪些文件

? assets中是圖片阳懂,字體等一些靜態(tài)資源

? components中是組件

? filters中是過(guò)濾器

? router中是路由文件

? App.vue 根組件

? mian.js

22梅尤、vue-router有哪幾種導(dǎo)航鉤子?(具體怎么用的)

三種岩调,
第一種:是全局導(dǎo)航鉤子:router.beforeEach(to,from,next)巷燥,作用:跳轉(zhuǎn)前進(jìn)行判斷攔截。
第二種:組件內(nèi)的鉤子
第三種:?jiǎn)为?dú)路由獨(dú)享組件

23号枕、路由之間是如何跳轉(zhuǎn)的跳轉(zhuǎn)缰揪?

? 1、router-link to = 'path'

? 2、router.push('path')

24钝腺、怎么定義vue-router的動(dòng)態(tài)路由抛姑?怎么獲取傳過(guò)來(lái)的動(dòng)態(tài)參數(shù)?

? 在router目錄下的index.js文件中艳狐,對(duì)path屬性加上/:id定硝。 使用router對(duì)象的params.id

25、vue-router是什么毫目?它有哪些組件蔬啡?

? vue用來(lái)寫路由一個(gè)插件。router-link镀虐、router-view

26箱蟆、如何讓CSS只在當(dāng)前組件中起作用?

? 將當(dāng)前組件的style修改為<style scoped>

27、<keep-alive></keep-alive>的作用是什么?

? <keep-alive></keep-alive> 包裹動(dòng)態(tài)組件時(shí)刮便,會(huì)緩存不活動(dòng)的組件實(shí)例,主要用于保留組件狀態(tài)或避免重新渲染空猜。

大白話: 比如有一個(gè)列表和一個(gè)詳情,那么用戶就會(huì)經(jīng)常執(zhí)行打開詳情=>返回列表=>打開詳情…這樣的話列表和詳情都是一個(gè)頻率很高的頁(yè)面诺核,那么就可以對(duì)列表組件使用<keep-alive></keep-alive>進(jìn)行緩存抄肖,這樣用戶每次返回列表的時(shí)候,都能從緩存中快速渲染窖杀,而不是重新渲染

28漓摩、如何實(shí)時(shí)修改data中數(shù)組中的值(數(shù)據(jù)改變?cè)噲D改變)

this.$set(this.data,”key”,value’)

? $set的使用方法自己查

29、slot是什么

? 插槽:

? 三種方式:1入客、匿名插槽

? 2管毙、具名插槽

? 3、帶參數(shù)的插槽

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桌硫,一起剝皮案震驚了整個(gè)濱河市夭咬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铆隘,老刑警劉巖卓舵,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異膀钠,居然都是意外死亡掏湾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門肿嘲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)融击,“玉大人,你說(shuō)我怎么就攤上這事雳窟∽鹄耍” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拇涤。 經(jīng)常有香客問(wèn)我捣作,道長(zhǎng),這世上最難降的妖魔是什么工育? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任虾宇,我火速辦了婚禮,結(jié)果婚禮上如绸,老公的妹妹穿的比我還像新娘嘱朽。我一直安慰自己,他們只是感情好怔接,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布搪泳。 她就那樣靜靜地躺著,像睡著了一般扼脐。 火紅的嫁衣襯著肌膚如雪岸军。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天瓦侮,我揣著相機(jī)與錄音艰赞,去河邊找鬼。 笑死肚吏,一個(gè)胖子當(dāng)著我的面吹牛方妖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播罚攀,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼党觅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了斋泄?” 一聲冷哼從身側(cè)響起杯瞻,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炫掐,沒想到半個(gè)月后魁莉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡募胃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年沛厨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摔认。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宅粥,靈堂內(nèi)的尸體忽然破棺而出参袱,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布抹蚀,位于F島的核電站剿牺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏环壤。R本人自食惡果不足惜晒来,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望郑现。 院中可真熱鬧湃崩,春花似錦、人聲如沸接箫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辛友。三九已至薄扁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間废累,已是汗流浹背邓梅。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邑滨,地道東北人日缨。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像驼修,于是被迫代替她去往敵國(guó)和親殿遂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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

  • 一:什么是閉包乙各?閉包的用處墨礁? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在本質(zhì)上耳峦,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 9,601評(píng)論 1 52
  • # 傳智播客vue 學(xué)習(xí)## 1. 什么是 Vue.js* Vue 開發(fā)手機(jī) APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,540評(píng)論 0 6
  • VUE Vue :數(shù)據(jù)驅(qū)動(dòng)的M V Vm框架 m :model(后臺(tái)提供數(shù)據(jù))猬错,v :view(頁(yè)面),vM(模板...
    wudongyu閱讀 5,398評(píng)論 0 11
  • vue是什么惠桃? vue是構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的web界面的漸進(jìn)式框架塞祈。Vue.js 的目標(biāo)是通過(guò)盡可能簡(jiǎn)單的 API 實(shí)現(xiàn)...
    九四年的風(fēng)閱讀 8,703評(píng)論 2 131
  • 有人開始搖頭后悔 有人還在咬牙死撐 有人終于恍然醒悟 有人依舊懵懂無(wú)知 有的人明明看得清楚卻做得糊涂 有人即使一無(wú)...
    妙齒閱讀 238評(píng)論 8 3