面試官常問的 web前端 問題(五)

41.vue 幾種常用的指令

v-for 、 v-if 、v-else、v-bind(綁定屬性,簡寫 :)、v-on(事件綁定)、v-show、

42.v-if 和 v-show 區別

v-if 按照條件是否渲染,v-show 是 display 的 block(滿足) 或 none(不滿足)

43.vue 常用的修飾符?

.prevent : 提交事件不再重載頁面;
.stop : 阻止單擊事件冒泡;
.self : 當事件發生在該元素本身而不是子元素的時候會觸發;
.capture : 事件偵聽,事件發生的時候會調用;

44.vue-loader 是什麼?使用它的用途有哪些?

vue-loader:解析**.vue** 文件的一個加載器,跟 template/js/style 轉換成 js 模塊。
用途:js 可以寫 es6、style 樣式可以 scss 或 less、template 可以加 jade 等

45.computed、watch、methods 的區別

computed 計算屬性:用來聲明式的描述一個值依賴了其它的值。當你在模板裏把數據綁定到一個計算屬性上時,Vue 會在其依賴的任何值導致該計算屬性改變時更新 DOM。這個功能非常強大,它可以讓你的代碼更加聲明式、數據驅動並且易於維護。

watch 監聽的是你定義的變量,當你定義的變量的值發生變化時,調用對應的方法。就好在 div 寫一個表達式 name, data 裏寫入 num 和 lastname、firstname,在 watch 裏當 num 的值發生變化時,就會調用 num 的方法,方法裏面的形參對應的是 num 的新值和舊值,計算屬性計算的是 Name 依賴的值,它不能計算在 data 中已經定義過的變量。

methods 方法,函數,綁定事件調用;不會使用緩存

46.什麼是 js 的冒泡?Vue 中如何阻止冒泡事件?

js 冒泡:當父元素內多級子元素綁定了同一個事件,js 會依次從內往外或者從外往內,執行每個元素的該事件,從而引 發冒泡 ;
js 解決冒泡:event.stopPropagation()
vue 解決冒泡: 事件.stop,例如:@click.stop="",@mouseover.stop=""

47.vue 組件通信

1.父組件與子組件傳值 ,父組件傳給子組件:子組件通過 props 方法接受數據;子組件傳給父組件:$emit 方法傳遞參數 ;
2.非父子組件間的數據傳遞,兄弟組件傳值 eventBus,就是創建一個事件中心,相當於中轉站,可以用它來傳遞事件和接收事件;
3.也可使用 vuex;

48.<keep-alive></keep-alive>的作用是什麼?

<keep-alive></keep-alive>包裹動態組件時,會緩存不活動的組件實例,主要用於保留組件狀態或避免重新渲染。

大白話: 比如有一個列表和一個詳情,那麼用戶就會經常執行打開詳情=>返回列表=>打開詳情…這樣的話列表和詳情都是一個頻率很高的頁面,那麼就 可以對列表組件使用 <keep-alive></keep-alive> 進行緩存,這樣用戶每次返回列表的時候,都能從緩存中快速渲染,而不是重新渲染。

49.$nextTick 是什麼?

vue 實現響應式並不是數據發生變化後 dom 立即變化,而是按照一定的策略來進行 dom 更新。
$nextTick是在下次 DOM 更新循環結束之後執行延遲迴調,在修改數據之後使用 $nextTick,則可以在回調中獲取更新後的 DOM

50.Vue 子組件調用父組件的方法

直接在子組件中通過 this.$parent.event 來調用父組件的方法 ;
在子組件裏用 $emit 向父組件觸發一個事件,父組件監聽這個事件就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章