Vue元件 子元件向父元件傳遞資料以及路由

2021-09-14 05:51:13 字數 1784 閱讀 4509

我們知道,父元件使用 prop 傳遞資料給子元件。但子元件怎麼跟父元件通訊呢?這個時候 vue 的自定義事件系統就派得上用場了。

每個 vue 例項都實現了事件介面,即:

vue 的事件系統與瀏覽器的 eventtarget api 有所不同。儘管它們的執行起來類似,但是 $on 和 $emit 並不是addeventlistener 和 dispatchevent 的別名。

另外,父元件可以在使用子元件的地方直接用 v-on 來監聽子元件觸發的事件。

不能用 $on 偵聽子元件釋放的事件,而必須在模板裡直接用 v-on 繫結,參見下面的例子。

//定義子元件

var child = }`,

data()

},methods:

}}//根元件

var vm = new vue(,

components: ,

methods:

}})//html

注意兩點:

為了讓元件可以組合,我們需要一種方式來混合父元件的內容與子元件自己的模板。這個過程被稱為內容分發 (即 angular 使用者熟知的「transclusion」)。vue.js 實現了乙個內容分發 api,參照了當前 web components 規範草案,使用特殊的 元素作為原始內容的插槽。

//slot插槽使其可以在html中傳入資料,也可以在其中傳入預設內容

var child =

var vm = new vue(

})html

hello

有名slot

//slot插槽使其可以在html中傳入資料,也可以在其中傳入預設內容

var child =

var vm = new vue(

})html

頭部內容

22222

底部內容

有時候,非父子關係的兩個元件之間也需要通訊。在簡單的場景下,可以使用乙個空的 vue 例項作為事件匯流排:

var bus = new vue()

template: '新增

', methods: }}

template: '}

', data()

},created() )}}

var vm = new vue (

})

登入註冊

登入

不需要複雜的路由

首先需要

npm i -s vue-router 安裝router庫

var newscomponent =

var shopcomponent =

var notfoundcomponent =

var routes = [,,

,]

var router = new vuerouter()

// router

// })

router

})

var goods = )}},

data() }}

var router = new vuerouter(

]});

var vm = new vue(,

created() )

}});

vue子元件向父元件傳遞資料

vue專案中經常使用到元件之間的數值傳遞,實現的方法很多,但是原理基本上大同小異。子元件向父元件出傳遞資料,使用自定義事件的方式。父元件向子元件傳遞資料,使用props屬性的方式。推薦文章 vue筆記 父元件向子元件傳遞資料 我們可以從子元件中想父元件中傳遞多個資料,在子元件中要做的工作只是,使用t...

父元件向子元件傳遞資料 14 父元件向子元件通訊

1.不使用 v bind 傳遞資料 2.使用 v bind 傳遞資料 3.以上兩者的區別。先把重要的知識點寫在前面 簡單來說,父元件向子元件傳遞資料可以分為以下幾個步驟 在父元件繫結資料 在子元件使用 props 接收資料 在子元件使用資料。data components 渲染 2.在子元件上繫結 ...

vue元件 構成元件 父元件向子元件傳遞資料

元件對於vue來說非常重要,學習學習了基礎vue後,再回過頭來把元件弄透!元件意味著協同工作,通常父子元件會是這樣的關係 元件 a 在它的模版中使用了元件 b 它們之間必然需要相互通訊 父元件要給子元件傳遞資料,子元件需要將它內部發生的事情告知給父元件。在 vue.js 中,父子元件的關係可以總結為...