你必須要知道的前端(vue)面試題

1. 談?wù)勀銓?duì)MVVM開發(fā)模式的理解

MVVM分為Model史汗、View、ViewModel三者拒垃。

Model:代表數(shù)據(jù)模型停撞,數(shù)據(jù)和業(yè)務(wù)邏輯都在Model層中定義;

View:代表UI視圖悼瓮,負(fù)責(zé)數(shù)據(jù)的展示戈毒;

ViewModel:負(fù)責(zé)監(jiān)聽Model中數(shù)據(jù)的改變并且控制視圖的更新,處理用戶交互操作横堡;

Model和View并無(wú)直接關(guān)聯(lián)埋市,而是通過(guò)ViewModel來(lái)進(jìn)行聯(lián)系的,Model和ViewModel之間有著雙向數(shù)據(jù)綁定的聯(lián)系翅萤。因此當(dāng)Model中的數(shù)據(jù)改變時(shí)會(huì)觸發(fā)View層的刷新恐疲,View中由于用戶交互操作而改變的數(shù)據(jù)也會(huì)在Model中同步腊满。

這種模式實(shí)現(xiàn)了Model和View的數(shù)據(jù)自動(dòng)同步套么,因此開發(fā)者只需要專注對(duì)數(shù)據(jù)的維護(hù)操作即可,而不需要自己操作dom碳蛋。

2. Vue 有哪些指令胚泌?

v-html、v-show肃弟、v-if玷室、v-for等等零蓉。

3. v-if 和 v-show 有什么區(qū)別?

v-show 僅僅控制元素的顯示方式穷缤,將 display 屬性在 block 和 none 來(lái)回切換敌蜂;而v-if會(huì)控制這個(gè) DOM 節(jié)點(diǎn)的存在與否。當(dāng)我們需要經(jīng)常切換某個(gè)元素的顯示/隱藏時(shí)津肛,使用v-show會(huì)更加節(jié)省性能上的開銷章喉;當(dāng)只需要一次顯示或隱藏時(shí),使用v-if更加合理身坐。

4. 簡(jiǎn)述Vue的響應(yīng)式原理

當(dāng)一個(gè)Vue實(shí)例創(chuàng)建時(shí)秸脱,vue會(huì)遍歷data選項(xiàng)的屬性,用 Object.defineProperty將它們轉(zhuǎn)為getter/setter并且在內(nèi)部追蹤相關(guān)依賴部蛇,在屬性被訪問(wèn)和修改時(shí)通知變化摊唇。 每個(gè)組件實(shí)例都有相應(yīng)的watcher程序?qū)嵗鼤?huì)在組件渲染的過(guò)程中把屬性記錄為依賴涯鲁,之后當(dāng)依賴項(xiàng)的setter被調(diào)用時(shí)巷查,會(huì)通知watcher重新計(jì)算,從而致使它關(guān)聯(lián)的組件得以更新抹腿。

5. Vue中如何在組件內(nèi)部實(shí)現(xiàn)一個(gè)雙向數(shù)據(jù)綁定吮便?

假設(shè)有一個(gè)輸入框組件,用戶輸入時(shí)幢踏,同步父組件頁(yè)面中的數(shù)據(jù)髓需。

具體思路:父組件通過(guò)props傳值給子組件,子組件通過(guò) $emit 來(lái)通知父組件修改相應(yīng)的props值房蝉,具體實(shí)現(xiàn)如下:

import Vue from 'vue'

const component = {

?props: ['value'],

?template: `

? ?<div>

? ? ?<input type="text" @input="handleInput" :value="value">

? ?</div>

?`,

?data () {

? ?return {

? ?}

?},

?methods: {

? ?handleInput (e) {

? ? ?this.$emit('input', e.target.value)

? ?}

?}

}

new Vue({

?components: {

? ?CompOne: component

?},

?el: '#root',

?template: `

? ?<div>

? ? ?<comp-one :value1="value" @input="value = arguments[0]"></comp-one>

? ?</div>

?`,

?data () {

? ?return {

? ? ?value: '123'

? ?}

?}

})

可以看到僚匆,當(dāng)輸入數(shù)據(jù)時(shí),父子組件中的數(shù)據(jù)是同步改變的:

我們?cè)诟附M件中做了兩件事搭幻,一是給子組件傳入props咧擂,二是監(jiān)聽input事件并同步自己的value屬性。那么這兩步操作能否再精簡(jiǎn)一下呢檀蹋?答案是可以的松申,你只需要修改父組件:

template: `

? ?<div>

? ? ?<!--<comp-one :value1="value" @input="value = arguments[0]"></comp-one>-->

? ? ?<comp-one v-model="value"></comp-one>

? ?</div>

?`

v-model 實(shí)際上會(huì)幫我們完成上面的兩步操作。

6.?Vue中如何監(jiān)控某個(gè)屬性值的變化俯逾?

7.Vue中給data中的對(duì)象屬性添加一個(gè)新的屬性時(shí)會(huì)發(fā)生什么贸桶,如何解決?

8.如何優(yōu)化SPA應(yīng)用的首屏加載速度慢的問(wèn)題桌肴?

9.前端如何優(yōu)化網(wǎng)站性能皇筛?

10.jQuery如何擴(kuò)展自定義方法

目前來(lái)看公司面試的問(wèn)題還是比較基礎(chǔ)的,但是對(duì)于某些只追求會(huì)用并不研究其原理的同學(xué)來(lái)說(shuō)可能就沒(méi)那么容易了坠七。所以大家不僅要追求學(xué)習(xí)的廣度水醋,更要追求深度旗笔。后面的五個(gè)問(wèn)題的答案,下次更新拄踪,不想錯(cuò)過(guò)的伙伴可以關(guān)注我~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝇恶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子惶桐,更是在濱河造成了極大的恐慌艘包,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耀盗,死亡現(xiàn)場(chǎng)離奇詭異想虎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叛拷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門舌厨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人忿薇,你說(shuō)我怎么就攤上這事裙椭。” “怎么了署浩?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵揉燃,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我筋栋,道長(zhǎng)炊汤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任弊攘,我火速辦了婚禮抢腐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘襟交。我一直安慰自己迈倍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布捣域。 她就那樣靜靜地躺著啼染,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焕梅。 梳的紋絲不亂的頭發(fā)上迹鹅,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音丘侠,去河邊找鬼徒欣。 笑死逐样,一個(gè)胖子當(dāng)著我的面吹牛蜗字,可吹牛的內(nèi)容都是我干的打肝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挪捕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粗梭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起级零,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤断医,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后奏纪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鉴嗤,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年序调,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了醉锅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡发绢,死狀恐怖硬耍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情边酒,我是刑警寧澤经柴,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站墩朦,受9級(jí)特大地震影響坯认,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氓涣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一鹃操、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧春哨,春花似錦荆隘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至凰荚,卻和暖如春燃观,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背便瑟。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工缆毁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人到涂。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓脊框,卻偏偏與公主長(zhǎng)得像颁督,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浇雹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • 一:什么是閉包沉御?閉包的用處? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)昭灵。在本質(zhì)上吠裆,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 9,603評(píng)論 1 52
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容烂完。關(guān)于...
    云之外閱讀 5,050評(píng)論 0 29
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,209評(píng)論 0 6
  • 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,706評(píng)論 2 131
  • 主要還是自己看的抠蚣,所有內(nèi)容來(lái)自官方文檔效斑。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,350評(píng)論 0 25