1、本章知識點
事件命名才用 “-” 分割。(不採用駝峰,因為html是大小寫不敏感)
。sync 修飾符的使用
2、$emit 作用與語法
通常用於子元件呼叫父元件方法,實現子元件主動與父元件進行通訊。
<!——-html——>
//這裡註冊了一個全域性元件Vue。component(‘my-component’,{ template:`
1、本章知識點
事件命名才用 “-” 分割。(不採用駝峰,因為html是大小寫不敏感)
。sync 修飾符的使用
2、$emit 作用與語法
通常用於子元件呼叫父元件方法,實現子元件主動與父元件進行通訊。
<!——-html——>
//這裡註冊了一個全域性元件Vue。component(‘my-component’,{ template:`
這時點選子元件的按鈕時,彈出了123。這裡的
@my-fun=‘parentFunc’
就是建立了一個呼叫父元件parentFun方法的事件my-fun。然後在子元件透過
this。$emit(‘my-fun’,123)
就可以觸發事件。
3、。sync修飾符的使用
作用:用於實現父子元件資料的雙向繫結 (語法糖)
。sync
實現資料的雙向繫結
原理:透過
。sync
繫結的父子元件的值。實際上上Vue自動為子元件建立一個事件,用來改變父元件值,而事件名預設為:
update: prop值
。以下面案例進行說明:
透過在子元件新增:
:child-value。sync =‘value’
。 Vue看到
。sync
關鍵字會自動為子元件建立一個叫做
update:childValue
或者
update:child-value
的事件。(這兩種事件名都可以成功呼叫) 這個事件可以接受引數,並自動將引數賦給父元件的
value
。可以理解為事件是引用了這樣的方法
" (value) => this.value = value "
可以看到在後面子元件的input的觸發方法我成功呼叫事件,將子元件的 輸入傳遞給父元件。
<!—— html程式碼 ——>
Vue。component(‘myComponent’,{ props:[‘childValue’], template:`
最終效果圖:
改變父元件的值 或是 改變子元件的值,父子元件都會跟著變化。
4、補充說明:關於為什麼要使用watch監聽
因為這裡涉及到修改子元件的值,所以沒有讓直接繫結props值。Vue並
不推薦在子元件中修改props的值
( 具體可以參考: Vue中props的用發 )。 所以選擇將props當作data值的初始值。又因為props只被用作為初始值,所以當父元件的值發生改變,引發子元件的props值發生改變,並不是傳遞給子元件的data屬性。所以這裡使用watch來監聽props的值,實時的改變data的值。
轉自簡書:沒有魚丸_b12f
原文連結:https://www。jianshu。com/p/1d205355e2fb