參加了一個(gè)訓(xùn)練營(yíng)打卡 記錄一些面試題和一些知識(shí)點(diǎn)
1.–?1.props?/ $emit適用于父子組件通信這種方法是 Vue 組件的基礎(chǔ)。
–?2.ref?與 $parent?/ $children適用于父子組件通信
ref:如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子組件上,引用就指向組件實(shí)例$parent / $children:訪問(wèn)父 / 子實(shí)例
–?3.EventBus ($emit / $on)適用于父子笨腥、隔代帐萎、兄弟組件通信這種方法通過(guò)一個(gè)空的 Vue 實(shí)例/作為中央事件總線(事件中心)表悬,用它來(lái)觸發(fā)事件和監(jiān)聽(tīng)事件校读,從而實(shí)現(xiàn)任何組件間的通信沼侣,包括父子、隔代歉秫、兄弟組件蛾洛。
–?4.$attrs/$listeners適用于隔代組件通信$attrs:包含了父作用域中不被 prop 所識(shí)別 (且獲取) 的特性綁定 ( class 和 style 除外 )。當(dāng)一個(gè)組件沒(méi)有聲明任何 prop 時(shí)雁芙,這里會(huì)包含所有父作用域的綁定 ( class 和 style 除外 )轧膘,并且可以通過(guò) v-bind=“$attrs” 傳入內(nèi)部組件。通常配合 inheritAttrs 選項(xiàng)一起使用兔甘。`$listeners`:包含了父作用域中的 (不含 .native 修飾器的) v-on 事件監(jiān)聽(tīng)器扶供。它可以通過(guò) v-on=“$listeners” 傳入內(nèi)部組件
–?5.provide / inject適用于隔代組件通信祖先組件中通過(guò) provider 來(lái)提供變量,然后在子孫組件中通過(guò) inject 來(lái)注入變量裂明。provide / inject?API 主要解決了跨級(jí)組件間的通信問(wèn)題椿浓,不過(guò)它的使用場(chǎng)主要是子組件獲取上級(jí)組件的狀態(tài),跨級(jí)組件間建立了一種主動(dòng)提供與依賴注入的關(guān)系闽晦。
–?6.Vuex適用于父子扳碍、隔代、兄弟組件通信Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式仙蛉。每一個(gè) Vuex 應(yīng)用的核心就是 store(倉(cāng)庫(kù))笋敞。“store” 基本上就是一個(gè)容器荠瘪,它包含著你的應(yīng)用中大部分的狀態(tài) ( state )夯巷。Vuex 的狀態(tài)存儲(chǔ)是響應(yīng)式的。當(dāng) Vue 組件從 store 中讀取狀態(tài)的時(shí)候哀墓,若 store 中的狀態(tài)發(fā)生變化趁餐,那么相應(yīng)的組件也會(huì)相應(yīng)地得到高效更新。改變 store 中的狀態(tài)的唯一途徑就是顯式地提交 (commit) mutation篮绰。這樣使得我們可以方便地跟蹤每一個(gè)狀態(tài)的變化后雷。