站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        看看這3道必問面試題,檢驗(yàn)?zāi)愕腣ue掌握程度!

        本篇文章給大家整理分享3道Vue必問面試題,檢驗(yàn)一下大家對(duì)Vue的掌握程度,看看你是否都能答對(duì)!

        看看這3道必問面試題,檢驗(yàn)?zāi)愕腣ue掌握程度!

        問題1: v-show 與 v-if 有什么區(qū)別?

        此題屬于考察面試者的Vue基礎(chǔ)情況,一般只要用過Vue肯定會(huì)用到v-show 與 v-if。(學(xué)習(xí)視頻分享:vue視頻教程)

        v-if 指令用于條件性地渲染一塊內(nèi)容,而v-show也用于條件性展示元素。

        使用v-show的元素會(huì)被渲染并保留在 DOM 中,并使用CSS的display來控制元素的顯示和隱藏。v-show 不支持 <template> 元素,也不支持 v-else。

        使用v-if 是“真正”的條件渲染,元素的事件監(jiān)聽器和子組件都會(huì)被銷毀和重建。v-if 也是惰性的,如果初始條件為false,則并不會(huì)渲染,直到變?yōu)閠rue才會(huì)觸發(fā)第一次渲染。而v-show不管條件是什么都會(huì)渲染,并根據(jù)display屬性來控制顯示隱藏。

        一般來說,v-if的切換開銷更大,而v-show只有初始渲染開銷,如果元素需要頻繁地切換,使用v-show,如果條件很少改變,則使用v-if更好。

        問題2:v-model 的原理?

        v-model指令主要用來在<input><select>、<textarea>表單元素或者組件上來實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。他并沒有多神奇,只是監(jiān)聽了用戶的輸入事件來對(duì)數(shù)據(jù)進(jìn)行更新。

        v-model會(huì)根據(jù)不同的元素來觸發(fā)不同的事件:

        • text 和 textarea 元素使用input 事件;
        • checkbox / radio 和 select使用change 事件;

        拿input表單舉例:

        <input v-model='something'>  <!-- 等價(jià)于 -->  <input v-bind:value="something" v-on:input="something = $event.target.value">

        如果在自定義組件中:

        <!-- 父組件: --> <ModelChild v-model="message"></ModelChild>  <!-- 子組件: --> <template>   <div>{{value}}</div> </template>  <script>   export default {     props:{       value: String     },     methods: {       test1(){          this.$emit('input', '小紅')       },     },   } </script>

        在父組件中,修改message的值,子組件內(nèi)的props的value字段就會(huì)自動(dòng)更改,在子組件內(nèi)觸發(fā)input事件,那么父組件中的message值也會(huì)被更改。

        問題3:Vue 組件間通信有哪幾種方式?

        這道題也是面試非常常考的一道題,能答出的方式越多,說明對(duì)Vue掌握的越熟練。一般組件間的通信大致分為3種:父子組件通信、爺孫組件通信、兄弟組件通信,下面我們分別來看:

        • props / $emit 適合父子組件間通信

          • 這也是Vue最基礎(chǔ)的數(shù)據(jù)通信方式,如果這都不知道,那就沒法往后聊了。
        • ref$parent / $children 適合父子組件間通信

          • ref如果用在組件上,可以拿到組件的實(shí)例對(duì)象,進(jìn)行操作數(shù)據(jù)
          • $parent / $children:也可以訪問父/子實(shí)例對(duì)象,進(jìn)行數(shù)據(jù)操作
        • EventBus ($emit / $on) 適合父子、爺孫、兄弟組件通信

          • 這種方法是通過場景一個(gè)空的Vue實(shí)例來作為事件中心,用它來觸發(fā)事件和監(jiān)聽事件,從而實(shí)現(xiàn)任何組件間的通信。
          • 使用EventBus這種方式有很多弊端,不建議大家在項(xiàng)目中去使用,知道這種實(shí)現(xiàn)思路就可以。
        • $attrs/$listeners 適合爺孫組件通信

          • $attrs:包含父作用域中不作為組件props和自定義事件的屬性綁定和事件,并且可以通過 v-bind="$attrs" 傳入內(nèi)部組件。
          • $listeners:包含父作用域中的 (不含 .native 修飾器的) v-on 事件監(jiān)聽器。它可以通過 v-on="$listeners" 傳入內(nèi)部組件。注意:在 Vue 3 中已被移除。事件監(jiān)聽器現(xiàn)在是 $attrs 的一部分
        • provide / inject 適合爺孫組件通信

          • 在爺爺組件上通過 provide 來提供變量,然后在孫子組件中通過 inject 來注入變量。
        • Vuex 適合 父子、爺孫、兄弟組件通信

          • Vuex是專門用來解決Vue應(yīng)用程序中的狀態(tài)管理問題。

        (學(xué)習(xí)視頻分享:web前端開發(fā)、編程基礎(chǔ)視頻)

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 精品视频一区二区三三区四区| 久久精品国产清高在天天线| 国产精品久久99| 国产精品黄网站| 99精品电影一区二区免费看| 中文字幕亚洲综合精品一区| 精品人妻少妇一区二区三区在线| 久久精品这里只有精99品| 中日韩产精品1卡二卡三卡| 精品国产三级a在线观看| 久久久久免费精品国产| 久久精品国产72国产精福利| 亚洲精品V欧洲精品V日韩精品| 91精品国产91久久综合| 国产高清一级毛片精品| 中文字幕精品一区二区精品| 99精品全国免费观看视频..| 精品国产欧美一区二区三区成人| 亚洲国产精品无码av| 亚洲国产精品自在线一区二区| 亚洲午夜精品久久久久久app| 91精品国产乱码久久久久久 | 国产精品无码素人福利不卡| 久久久久久亚洲精品成人 | 国产精品合集一区二区三区| 无码日韩精品一区二区人妻| 欧美激情精品久久久久| 最新国产精品拍自在线观看| 91麻豆精品一二三区在线| 中文国产成人精品久久不卡| 91精品啪在线观看国产电影| 国产精品伦一区二区三级视频| 久久久精品人妻无码专区不卡| 久久99国产精品99久久| 国产女主播精品大秀系列| 亚洲国产成人精品91久久久| 国产精品国产三级国产| 国产精品亚洲精品观看不卡| 人妻少妇乱子伦精品| 自拍偷在线精品自拍偷无码专区| 国产精品无码不卡一区二区三区|