Vue面試題:談?wù)剉-show和v-if

從以下7個(gè)維度談?wù)剉-show和v-if的區(qū)別和相同處

1)控制手段

使用v-show時(shí),標(biāo)簽始終存在罚攀,只是更改了元素的display趟妥,而v-if直接將元素從dom樹中移除了庇勃。v-show操縱樣式,而v-if直接操縱dom元素倒彰。v-if是條件渲染,如果在初始渲染時(shí)條件為假莱睁,則什么也不做——直到條件第一次變?yōu)檎鏁r(shí)待讳,才會(huì)開始渲染條件塊,而v-show不管初始條件是什么仰剿,元素總是會(huì)被渲染创淡,且只是簡(jiǎn)單修改元素的css樣式——display屬性。

2)編譯過程

v-if切換有一個(gè)局部編譯/卸載的過程南吮,切換過程中合適地銷毀和重建內(nèi)部的事件監(jiān)聽和子組件琳彩;v-show只是簡(jiǎn)單的基于css切換

3)編譯條件

v-if是真正的條件渲染,它會(huì)確保在切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件適當(dāng)?shù)乇讳N毀和重建部凑。只有渲染條件為假時(shí)露乏,不作操作,直到為真才渲染

·v-show由false變成true時(shí)不會(huì)觸發(fā)組件的生命周期

·v-if由false變成true時(shí)涂邀,觸發(fā)組件的beforeCreate瘟仿、create、beforeMount必孤、mounted鉤子猾骡,由true變成false時(shí)觸發(fā)組建的beforeDestory瑞躺、destoryed方法

4)性能消耗

v-if有更高的消耗切換;v-show有更高的初始渲染消耗

5)原理分析

vue的渲染邏輯——首先把模板轉(zhuǎn)換成可執(zhí)行的js代碼(也就是render函數(shù))兴想,然后執(zhí)行render函數(shù)處理模板轉(zhuǎn)換成html幢哨,而這個(gè)過程中v-if和v-show就會(huì)被解析喉脖。v-if就像if()else()一樣動(dòng)態(tài)的區(qū)創(chuàng)建元素慕购,注意在這個(gè)過程中如果v-if控制的是組件凑队,切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件會(huì)被適當(dāng)?shù)劁N毀和重建卖词,也就是會(huì)觸發(fā)組件和子組件的生命周期哥艇,如

?? ?// v-if在轉(zhuǎn)換成render時(shí)會(huì)被解析成字符串

?? ?if('v-if===true''){

? ? ? ? ? ?document.createElement('div')

? ? ? ? ? ?appendChild()

? ? ? ? ? ? ......

? ? ? ? }else{

? ?removeChild()

? ? .....

? ? }

v-show初始化時(shí)為false時(shí)會(huì)添加style="display=none"捻艳,為true時(shí)移除display=none旗吁,注意并不是把display變?yōu)閎lock翰灾,因?yàn)橐3衷豷tyle的原始性厂画,不管初始條件是什么凸丸,元素總是會(huì)被渲染,也就是說如果找到了v-show袱院,不管是true還是false都會(huì)失去創(chuàng)建元素屎慢,然后在css操作

? ?//v-show在轉(zhuǎn)換成render時(shí)會(huì)被解析成字符串

? ?if('v-show'){

? ? ? ?//創(chuàng)建元素

? ?letele=document.createElement('div');

? ? ? ?//控制顯隱

? ? ? ?if('v-show'===true){

? ? ? ? ? ?ele.setAttribute('diaplay','block')

? ? ? ? }else{

? ? ? ? ? ?ele.setAttribute('diaplay','none')

? ? ? ? }

}

6)應(yīng)用場(chǎng)景

·當(dāng)需要在顯示與隱藏之間進(jìn)行頻繁的切換操作時(shí),就使用v-show

·如果在運(yùn)行時(shí)條件很少改變忽洛,就使用v-if

·v-if相比v-show開銷更大(直接操作dom節(jié)點(diǎn)的增加與刪除)

7)共同點(diǎn)

·兩者都用來控制元素的顯示與隱藏

·當(dāng)兩者都為false時(shí)腻惠,都不會(huì)占據(jù)頁面位置

·當(dāng)條件變化時(shí)都會(huì)觸發(fā)過渡效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市欲虚,隨后出現(xiàn)的幾起案子集灌,更是在濱河造成了極大的恐慌,老刑警劉巖复哆,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欣喧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡寂恬,警方通過查閱死者的電腦和手機(jī)续誉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來初肉,“玉大人酷鸦,你說我怎么就攤上這事⊙烙剑” “怎么了臼隔?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)妄壶。 經(jīng)常有香客問我摔握,道長(zhǎng),這世上最難降的妖魔是什么丁寄? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任氨淌,我火速辦了婚禮泊愧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盛正。我一直安慰自己删咱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布豪筝。 她就那樣靜靜地躺著痰滋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪续崖。 梳的紋絲不亂的頭發(fā)上敲街,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音严望,去河邊找鬼多艇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛著蟹,可吹牛的內(nèi)容都是我干的墩蔓。 我是一名探鬼主播梢莽,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萧豆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了昏名?” 一聲冷哼從身側(cè)響起涮雷,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轻局,沒想到半個(gè)月后洪鸭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仑扑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年览爵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镇饮。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蜓竹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出储藐,到底是詐尸還是另有隱情俱济,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布钙勃,位于F島的核電站蛛碌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辖源。R本人自食惡果不足惜蔚携,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一希太、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酝蜒,春花似錦跛十、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至远豺,卻和暖如春奈偏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躯护。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工惊来, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棺滞。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓裁蚁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親继准。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枉证,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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