91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

vue組件通信有哪幾種方式

vue
養魚的貓咪
1251
2021-05-13 13:18:08
欄目: 編程語言

vue中組件通信的方式有:1.使用props/$emit實現父子組件通信;2.使用$refs/$parent/$children/$root實現父子組件通信;3.使用$attrs/$listener實現隔代組件通信;4.使用provide/inject實現隔代組件通信;5.使用Vuex實現父子、隔代、兄弟組件通信;6.使用eventBus實現父子、隔代、兄弟組件通信;

vue組件通信有哪幾種方式

具體方法如下:

1.使用props/$emit實現父子組件通信

props:props是用于接收來自父組件通過v-bind傳遞的數據,當props為數組時,直接接收父組件傳遞的屬性;當props為對象時,可以通過type、default、required、validator等配置來設置屬性的類型、默認值、是否必傳和校驗規則。

$emit:在進行父子組件通信時,可以使用$emit來觸發父組件v-on在子組件上綁定相應事件的監聽。

2.使用$refs/$parent/$children/$root實現父子組件通信

$refs:可以將$refs綁定DOM元素,在獲取DOM元素的attributes屬性,也可以將$refs綁定子組件,從而獲取子組件實例。

$parent:vue中可以直接通過this.$parent來獲取當前組件的父組件實例。

$children:vue中可以直接通過this.$children來獲取當前組件的子組件實例的數組。

$root:在獲取當前組件樹的根vue實例時,若當前實例沒有父實例,可以通過$root實現組件之間的跨級通信。

3.使用$attrs/$listener實現隔代組件通信

$attrs:$attrs是用來接收父作用域中不作為prop被識別的attribute屬性,且可以通過v-bind="$attrs"傳入內部組件,常用于創建高級別的組件。

$listeners:$listeners中包含了父作用域中的 v-on 事件監聽器,可以通過可以通過 v-on="$listeners" 傳入內部組件,常用于創建更高層次的組件。

4.使用provide/inject實現隔代組件通信

provide:provide是一個對象或是一個返回對象的函數,其對象包含可注入其子孫的property,即要傳遞給子孫的屬性和屬性值。

injcet:當injcet為字符串數組時,接收的屬性會由data變成provide中的屬性;當injcet為為對象時,可以通過配置default和from等屬性來設置默認值,在子組件中使用新的命名屬性等。

5.使用Vuex實現父子、隔代、兄弟組件通信

Vuex是一個Vue.js應用程序開發的狀態管理模式,其采用集中式存儲管理應用的所有組件的狀態,當組件從store中讀取狀態的時,若store中的狀態發生變化,相應的組件也會得到高效更新。

6.使用eventBus實現父子、隔代、兄弟組件通信

eventBus是事件總線,是注冊一個新的vue實例,在調用這個實例的$emit和$on等來監聽和觸發這個實例的事件,通過傳入參數從而實現組件的全局通信。

1
邻水| 抚松县| 江门市| 类乌齐县| 海南省| 晋宁县| 筠连县| 华坪县| 百色市| 会昌县| 大竹县| 凉城县| 岳阳市| 连南| 嘉善县| 壤塘县| 海原县| 延吉市| 临西县| 新竹市| 黑龙江省| 瑞金市| 奉节县| 得荣县| 英山县| 南平市| 七台河市| 桐庐县| 克东县| 棋牌| 镇雄县| 于都县| 兴义市| 北票市| 渭源县| 怀集县| 长治县| 常宁市| 宜君县| 城市| 和林格尔县|