vue3組件通信的幾種方式分別是這樣的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計,高端網(wǎng)站設(shè)計,廣告投放等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破超過千家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.
vue3組件通信方式為以下幾種
props
$emit
$expose / ref
$attrs
v-model
provide / inject
Vuex
mitt
//Child.vue // 寫法一按鈕// 寫法二按鈕// Parent.vue響應
父組件獲取子組件的屬性或者調(diào)用子組件方法
// Parent.vue 注意 ref="comp"
attrs:包含父作用域除class和style除外的非props屬性集合
// 父組件// 子組件
可以支持多個數(shù)據(jù)雙向綁定
//子組件
provide/inject為依賴注入 provide:可以讓我們指定想要提供給后代組件的數(shù)據(jù) inject:在任何后代組件中接受想要添加在這個組件上的數(shù)據(jù),不管組件嵌套多深都可以直接拿來用
// 父組件 //子組件
//store/index.js import { createStore } from 'vuex' export default createStore({ state:{count:1}, getters:{ getCount:state=>state.count }, mutations:{ add(state){ state.count++ } } }) // main.js import { createApp } from 'vue' import APP from './App.vue' import store from './store' createApp(APP).use(store).mount("#app") // 直接使用{{ $store.state.count }}// 獲取
Vue3中已經(jīng)沒有了EventBus跨組件通信,替代方案mitt.js,但原理方式EventBus是一樣的
安裝方式 npm i mitt -S
封裝
mitt.js import mitt from 'mitt' const mitt = mitt() export default mitt
組件之間使用
// 組件A // 組件B
看完上述內(nèi)容,你們掌握vue3組件通信的幾種方式分別是這樣的的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!