vue面試題總結(jié)

1、vue生命周期

生命周期 描述
beforeCreate 組件實(shí)例被創(chuàng)建之初弃揽,組件的屬性生效之前
created 組件實(shí)例已經(jīng)完全創(chuàng)建脯爪,屬性也綁定,但真實(shí) dom 還沒有生成矿微,$el 還不可用
beforeMount 在掛載開始之前被調(diào)用:相關(guān)的 render 函數(shù)首次被調(diào)用
mounted el 被新創(chuàng)建的 vm.$el 替換痕慢,并掛載到實(shí)例上去之后調(diào)用該鉤子
beforeUpdate 組件數(shù)據(jù)更新之前調(diào)用,發(fā)生在虛擬 DOM 打補(bǔ)丁之前
update 組件數(shù)據(jù)更新之后
activited keep-alive 專屬涌矢,組件被激活時調(diào)用
deactivated keep-alive 專屬掖举,組件被銷毀時調(diào)用
beforeDestory 組件銷毀前調(diào)用
destoryed 組件銷毀后調(diào)用
  • 生命周期示意圖
生命周期示意圖

2、computed 和 watch 的區(qū)別

  • computed:是計(jì)算屬性娜庇,依賴其他屬性的值塔次。具有緩存,只有他依賴的值發(fā)生變化名秀,下一次取當(dāng)前屬性時才會重新計(jì)算励负。這樣避免了每次取值時都重新計(jì)算。內(nèi)部不允許改變其他屬性的值泰偿。切必須返回當(dāng)前屬性值。
  • watch:觀察作用蜈垮。用于監(jiān)聽某個值變化后的回調(diào)操作耗跛。而且watch內(nèi)部可以允許異步操作裕照。內(nèi)部可以同時改變多個屬性的值或者執(zhí)行多個方法。

3调塌、vue中 父組件和子組件生命周期函數(shù)執(zhí)行的順序

按照不同的過程可以分為4類:

  1. 加載渲染的過程
    父組件beforeCreate -> 父組件create -> 父組件beforeMounted -> 子組件beforeCreate -> 子組件create -> 子組件beforeMount -> 子組件 mounted -> 父組件 mounted
  2. 子組件更新
    父組件 beforeUpdate -> 子組件 beforeUpdate -> 子組件 updated -> 父組件updated
  3. 父組件更新
    父組件 beforeUpdate -> 父組件updated
  4. 銷毀
    父組件 beforeDestroy -> 子組件 beforeDestroy -> 子組件 destroyed -> 父組件 destroyed

4晋南、v-model 原理

v-model指令實(shí)際上就是語法糖,在表單元素上創(chuàng)建雙向數(shù)據(jù)綁定羔砾。根據(jù)不同的表單元素负间,綁定不同的屬性值和事件實(shí)現(xiàn)雙向數(shù)據(jù)綁定。

  • input[type='text']姜凄、textarea 綁定屬性value 和 input 事件
<input v-model="a">
// 相當(dāng)于
<input :value="a" @input="a = $event.target.value">
  • input[type='checkbox']政溃、input[type='radio'] 綁定屬性checked 和 change 事件
<input type="checkbox" v-model="a">
// 相當(dāng)于
<input :checked="a" @change="a = $event.target.checked">
  • select 綁定屬性value 和 change 事件
<select v-model="a"></select>
// 相當(dāng)于
<select :value="a" @change="a = $event.target.value"></select>
  • 在自定義組件上使用v-model,相當(dāng)于給自定義組件傳入一個屬性 value态秧, 并且綁定一個input方法
// 父組件:
<Parent v-model="a"></Parent>

// 子組件:
<template>
  <div>{{value}}</div>
</template>
<script>
export default {
  props:{
    value: String
  },
  methods: {
    test(){
       this.$emit('input', 'aaaaaa')
    },
  },
}
</script>

5董虱、vue 組件間通信的方法

  1. props / $emit() 用于父子組件間的通信
  2. ref$parent / $children 用于父子組件間的通信
  • ref 綁定在DOM元素上是返回的是DOM元素,綁定在Vue組件上時返回的是Vue組件的實(shí)例對象
  1. EventBus $emit() / $on 用于父子組件申鱼、隔代組件和兄弟組件間的通信
// bus.js
import Vue from 'vue'
export default new Vue()
// 在組件中created()方法中監(jiān)聽事件
import Bus from 'path/to/bus'
export default {
  created(){
    Bus.$on('clickme', target => {
      console.log('clickme', target)
    })
  }
}
// 在其他組件中觸發(fā)事件
import Bus from 'path/to/bus'
export default {
  methods:{
    test(){
      Bus.$emit('clickme', '啦啦啦啦啦')
    }
  }
}

  1. $attrs / $listeners用于隔代組件間通信

通過$attrs向子孫組件傳遞屬性
通過$listeners子孫組件向爺爺組件$emit()通信
看到一篇文章講解很詳細(xì)
文章的地址

  1. provide / inject 用于隔代組件間通信
// 爺爺組件
<script>
export default {
  provide:{
    a:1
  }
}
</script>
// 孫子組件
<template>
  <div>{{ a }}</div>
</template>
<script>
export default {
  inject:{
    a:{
      defalut: 0
    }
  }
}
</script>
  1. vuex 用于父子組件愤诱、隔代組件、兄弟組件間通信
    vuex官網(wǎng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捐友,一起剝皮案震驚了整個濱河市淫半,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匣砖,老刑警劉巖科吭,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脆粥,居然都是意外死亡砌溺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門变隔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來规伐,“玉大人,你說我怎么就攤上這事匣缘〔粒” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵肌厨,是天一觀的道長培慌。 經(jīng)常有香客問我,道長柑爸,這世上最難降的妖魔是什么吵护? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上馅而,老公的妹妹穿的比我還像新娘祥诽。我一直安慰自己,他們只是感情好瓮恭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布雄坪。 她就那樣靜靜地躺著,像睡著了一般屯蹦。 火紅的嫁衣襯著肌膚如雪维哈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天登澜,我揣著相機(jī)與錄音阔挠,去河邊找鬼。 笑死帖渠,一個胖子當(dāng)著我的面吹牛谒亦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播空郊,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼份招,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狞甚?” 一聲冷哼從身側(cè)響起锁摔,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哼审,沒想到半個月后谐腰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涩盾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年十气,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片春霍。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡砸西,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出址儒,到底是詐尸還是另有隱情芹枷,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布莲趣,位于F島的核電站鸳慈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏喧伞。R本人自食惡果不足惜走芋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一绩郎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翁逞,春花似錦嗽上、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彼念。三九已至挪圾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逐沙,已是汗流浹背哲思。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吩案,地道東北人棚赔。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像徘郭,于是被迫代替她去往敵國和親靠益。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355