欧美精品在线一区二区三区_亚洲女同精品视频_日韩一区免费_国产欧美久久久精品免费_国产这里只有精品_僵尸再翻生在线观看_久久99精品国产一区二区三区_亚洲免费一区二区_女教师淫辱の教室蜜臀av软件_中文字幕国产一区二区

Vue 組件通信(父傳子,子傳父,跨組件傳值)

2021-10-9    前端達(dá)人

目錄

一, 簡單介紹組件通信

二, 詳解傳值方法

1.父傳子 props

2.子傳父 $emit

3.跨組件通信 event-bus


一, 簡單介紹組件通信

        我們知道在現(xiàn)在的開發(fā)環(huán)境下,不管前后端開發(fā)都是組件化模塊化,這是因為組件的優(yōu)勢無比的巨大,可以進(jìn)行多次的復(fù)用增加開發(fā)效率,也可以分類鮮明,便于維護(hù),而我今天所寫的就是開發(fā)中分割成不同的組件互相傳遞數(shù)據(jù)和互動

        我的工作中常用地組件通信大致分為三類: 父傳子 , 子傳父 , 跨組件傳值

        下面就來分別介紹一下 我常用的這三種傳值方法

二, 詳解傳值方法

        父子組件的確認(rèn)方法:我將 B 組件import引入到 A 組件中,那么 B 就是 A 的子組件,A 就是 B 的父組件

1.父傳子 props

        簡而言之,父傳子就是父組件把數(shù)據(jù)傳給子組件,具體就是如下,在子組件的props中定義自定義屬性來待接收父組件的數(shù)據(jù),有兩種方法 如下:

        第一種,也是最推薦用的一種,以復(fù)雜類型的方式進(jìn)行聲明,這樣存儲的便是一個地址,可以和父組件的數(shù)據(jù)進(jìn)行雙向綁定,同步數(shù)據(jù),雖然可以雙向綁定,但是在Vue2.0中還是不可以直接在子組件中更改父組件的數(shù)據(jù),需要用到子傳父才行,這點等下會寫到

        這里只是用 text 舉個栗子,具體叫什么都可以哈,只是父子里面需要對應(yīng)上相同

        這個 text 接收到數(shù)據(jù)后的使用方法和一般data中聲明的變量一樣,只是不能再子組件中改變他

子組件中:        props 定義屬性接收

 
  1. <template>
  2. <div>
  3. <h2>son組件</h2>
  4. <p>props:{{ text }}</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. // 在此處定義props
  10. props: {
  11. // props中定義 接收父組件數(shù)據(jù)的自定義屬性,叫什么都可以,我隨便起了個text
  12. text: {
  13. type: String, // type 是用來規(guī)定此屬性接收到的數(shù)據(jù)的數(shù)據(jù)類型
  14. default: "未傳遞時默認(rèn)的文字" // 這個default是當(dāng)這個 text 沒有接收到傳遞的數(shù)據(jù)時的默認(rèn)值
  15. }
  16. }
  17. }
  18. </script>

父組件中:        標(biāo)簽內(nèi) 傳遞數(shù)據(jù)

 
  1. <template>
  2. <div id="app">
  3. <!--
  4. 這里的text就是子組件props里定義的text,這兩個名字得一致
  5. 并且傳遞的數(shù)據(jù)也要符合 type 規(guī)定的數(shù)據(jù)類型
  6. text就是傳遞字符串,:text就是傳遞動態(tài)數(shù)據(jù)
  7. -->
  8. <Son text="我是大娃 傳給子啦" />
  9. <Son :text="wenzi" />
  10. </div>
  11. </template>
  12. <script>
  13. import Son from './components/son.vue';
  14. export default {
  15. data () {
  16. return {
  17. wenzi: '我是二娃 傳給子啦'
  18. }
  19. },
  20. components: {
  21. Son
  22. }
  23. }
  24. </script>

        如上 雖然我的注釋寫的很清楚了,但是還是在介紹一下, <Son/> 是子組件的標(biāo)簽,在此標(biāo)簽的基礎(chǔ)上書寫 子組件props 定義的屬性名,并且傳遞參數(shù)具體對應(yīng)關(guān)系和效果如下:

        如上就是第一種我最常用的父傳子,其實還有一種方法,但是我一般也不用,很不方便,也貼到下邊了,這個是以數(shù)組方式聲明

 
  1. export default {
  2. // 在此處定義props
  3. props: ['text']
  4. }
  5. </script>

 

2.子傳父 $emit

        剛剛說到了在 Vue2.0 子組件不能直接改父組件的數(shù)據(jù),否則會報錯,這個解決方法就是在子組件中發(fā)起一個 自定義事件 ,在父組件監(jiān)聽這個事件,并且定義一個函數(shù)來改變數(shù)據(jù),具體操作如下:

子組件:        發(fā)起一個自定義事件,等待父組件監(jiān)聽到執(zhí)行函數(shù)

 
  1. <template>
  2. <div>
  3. <h2>son組件</h2>
  4. <p>props:{{ text }}</p>
  5. <button @click="changeTextFn">改變文字</button>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. // 在此處定義props
  11. props: {
  12. // props中定義 接收父組件數(shù)據(jù)的自定義屬性,叫什么都可以,我隨便起了個text
  13. text: {
  14. type: String, // type 是用來規(guī)定此屬性接收到的數(shù)據(jù)的數(shù)據(jù)類型
  15. default: "未傳遞時默認(rèn)的文字" // 這個default是當(dāng)這個 text 沒有接收到傳遞的數(shù)據(jù)時的默認(rèn)值
  16. }
  17. },
  18. methods: {
  19. // 按鈕點擊事件
  20. changeTextFn () {
  21. // 發(fā)起自定義事件,名字叫什么都行,第一個參數(shù)是事件名,之后再跟著的都是傳遞的參數(shù)
  22. this.$emit('changeFn', '我想變成三娃')
  23. }
  24. }
  25. }
  26. </script>

        我先在原有的代碼上添加了一個<button>按鈕,在點擊調(diào)用的函數(shù)中,通過 $emit 來發(fā)起事件并且可以傳遞參數(shù)

格式:        this.$emit('changeFn', '我想變成三娃') 

格式:        this.$emit('自定義事件名', 傳遞的參數(shù)) 

 

父組件:        行內(nèi)監(jiān)聽子組件的 自定義事件名(函數(shù)上不用寫參數(shù),在 methods 中直接寫形參就行)

 
  1. <template>
  2. <div id="app">
  3. <Son :text="wenzi" @changeFn="changeFn" />
  4. </div>
  5. </template>
  6. <script>
  7. import Son from './components/son.vue';
  8. export default {
  9. data () {
  10. return {
  11. wenzi: '我是二娃 傳給子啦'
  12. }
  13. },
  14. components: {
  15. Son
  16. },
  17. methods: {
  18. // 監(jiān)聽子組件自定義事件
  19. changeFn (newText) {
  20. // 這里的形參接受到的就是子組件中 第二個參數(shù)傳遞的數(shù)值
  21. this.wenzi = newText
  22. }
  23. }
  24. }
  25. </script>

對應(yīng)關(guān)系和效果圖如下:

 

 

 

3.跨組件通信 event-bus

        如果兩個組件的關(guān)系非常的復(fù)雜或者沒有未產(chǎn)生直接聯(lián)系,那么通過父子組件通訊是非常麻煩的。這時候可以使用通用的組件通訊方案:事件總線(event-bus)

        按照我的習(xí)慣,我會將事件總線創(chuàng)建到 main.js 中,這個使用原理是將bus掛載到Vue原型上,這樣就可以保證所有的組件都能通過 this.bus 訪問到事件總線,從而通過同一個事件總線監(jiān)聽同一個事件,具體原理和父子傳參差不多,都是 $emit 傳遞數(shù)據(jù), 只不過接收變成了$on 

        我這次以送禮物舉例用了兩個關(guān)系不大的組件 分別是 男組件 和 女組件 (隨便起的名)具體如下圖:

發(fā)送數(shù)據(jù) 男組件:   

    this.bus.$emit('自定義事件名',傳遞的參數(shù)) 

 
  1. <template>
  2. <div>
  3. <h1>男組件</h1>
  4. <button @click="sendGiftFn">送禮物</button>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data () {
  10. return {
  11. gift: '玫瑰花'
  12. }
  13. },
  14. methods: {
  15. sendGiftFn () {
  16. // 通過 bus 事件總線發(fā)起 自定義事件,并且傳遞參數(shù)(第一個是事件名,第二個開始是參數(shù))
  17. this.bus.$emit('sendMessage', this.gift)
  18. }
  19. }
  20. }
  21. </script>

接收數(shù)據(jù) 女組件:         

 this.bus.$on('監(jiān)聽的事件名',(e)=>{ e這個形參所接收的就是監(jiān)聽事件所攜帶的參數(shù)數(shù)據(jù) }) 

 
  1. <template>
  2. <div>
  3. <h1>女組件</h1>
  4. <p>來自男組件的禮物:{{ info }}</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data () {
  10. return {
  11. info: ""
  12. }
  13. },
  14. created () {
  15. // e 就是 sendMessage 這個事件所傳遞的數(shù)據(jù)
  16. this.bus.$on("sendMessage", (e) => {
  17. this.info = e;
  18. });
  19. }
  20. }
  21. </script>
  22. <style>
  23. </style>

具體效果如下:

 

綜上所述,就是我在工作中總結(jié)出來的一些組建通信的方法,希望您看到這里會有所收獲

藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進(jìn)入一起成長學(xué)習(xí),請掃碼藍(lán)小助,報下信息,藍(lán)小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

轉(zhuǎn)自:csdn
免責(zé)聲明:藍(lán)藍(lán)設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍(lán)藍(lán)設(shè)計www.ocunn.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)

日歷

鏈接

個人資料

存檔

性国产高清在线观看| 欧美xxxxxx| 欧美色图天堂网| 69xxx免费视频| 亚洲精品一级二级三级| 欧美xxxx做受欧美.88| 久久这里只有精品9| 国产精品主播直播| 在线亚洲美日韩| h片在线观看视频免费免费| 91精品蜜臀在线一区尤物| 丰满的亚洲女人毛茸茸| 亚洲无线视频| 亚洲自拍欧美另类| 精品资源在线看| 欧美日韩国产一区中文午夜| 中文字幕第六页| 精品久久久久久久久久久下田| 992tv成人免费影院| 国产成人精品av在线观| 国产亚洲女人久久久久毛片| 欧美 日韩 国产在线观看| 日本一区二区三区中文字幕 | 精品一区二区在线观看视频| 亚洲无线一线二线三线区别av| 91九色视频导航| 国产亚洲依依| 在线观看av一区| 亚洲av毛片基地| 国产欧美日韩亚洲一区二区三区| 国产精品久久久久久久久久直播| √新版天堂资源在线资源| 欧美亚一区二区| 刘亦菲国产毛片bd| 日韩精品一二区| 色噜噜狠狠一区二区三区| 操人在线观看| 亚洲美女精品成人在线视频| 国产a级一级片| 欧美精品三级在线| 欧美日韩国产二区| 丰满人妻一区二区三区四区53| 国产精品久久久久久久久久久免费看| 污视频免费在线观看网站| 日韩美女精品| 国产91在线视频| 日韩a在线观看| 色哟哟日韩精品| 日本高清黄色片| 日韩av网站免费在线| 亚洲成人18| 欧美电影免费观看高清完整| 国产亚洲人成a一在线v站| 中文字幕乱码人妻二区三区| 国产午夜精品久久久久久久 | 九色精品91| 国产精品三级美女白浆呻吟 | 日韩一区二区三区免费视频| 日韩在线视频免费观看高清中文| 国产免费视频一区二区三区| 亚洲欧洲日产国码二区| 欧美熟妇另类久久久久久多毛| 99久久视频| 成人自拍网站| 91桃色在线| 夜夜嗨av色综合久久久综合网| 一本久道久久综合无码中文| 亚洲欧美在线视频| 少妇精品无码一区二区三区| 伊人久久久大香线蕉综合直播 | 香蕉污视频在线观看| 国产午夜精品一区二区| 亚洲三级在线视频| 韩国欧美一区| 日韩妆和欧美的一区二区| 69堂精品视频在线播放| 九色精品免费永久在线| 欧美写真视频一区| 欧美中文字幕一区| 久久免费小视频| av电影在线观看完整版一区二区| 国产极品美女高潮无套久久久| 精品久久综合| 高清av免费一区中文字幕| www成人免费观看| 日日狠狠久久偷偷四色综合免费| 色一情一乱一乱一区91av| 色综合色狠狠综合色| 1024手机在线视频| 不卡av电影在线播放| www午夜视频| 欧美日韩一卡| 亚洲精品一区二| 日韩一区二区三区精品| 国产精品高潮在线| av在线播放国产| 在线观看日韩av| 亚洲欧美日韩动漫| 欧美日韩国产精品成人| 亚洲熟妇无码乱子av电影| 国产精品区一区二区三区| www.88av| 精久久久久久久久久久| 蜜臀久久99精品久久久酒店新书| 小说区亚洲自拍另类图片专区| 欧美激情www| 国产精品国产三级在线观看| 国产精品成人v| 在线heyzo| 久久精品99久久久久久久久| 日本24小时在线高清视频| 这里只有精品免费| 最近中文字幕av| 亚洲18女电影在线观看| 精品国产欧美日韩不卡在线观看 | av网址在线观看免费| 亚洲精品2区| 亚洲精品一区二区三区樱花| 国产亚洲成av人片在线观黄桃| 成人精品福利视频| 欧美xx视频| 日本亚洲欧美三级| 里番在线播放| 欧美极品少妇xxxxⅹ喷水| 在线免费av电影| 在线播放日韩av| 天堂中文在线8| 日韩精品欧美激情| 午夜视频福利在线| 日韩美女一区二区三区四区| 99热这里只有精品在线| 欧美性xxxxx极品少妇| 69视频免费看| 欧美日韩精品在线观看| 国产91av视频| 亚洲乱码一区二区三区在线观看| 亚洲一区二区在线视频观看| 日韩午夜在线| 免费看一级大黄情大片| 欧美日韩国产成人精品| 黄色一级大片免费| 五月婷婷亚洲| 青青视频免费在线| 亚洲澳门在线| 大片在线观看网站免费收看| 日韩国产专区| 天堂av免费看| 91亚洲国产高清| 欧美精品久久96人妻无码| 欧美亚洲高清| 国产精品99久久久久久大便| 欧美日韩一二| 熟妇熟女乱妇乱女网站| 日韩精品一卡| 久久久无码中文字幕久...| 99久久99久久精品国产片桃花| 一区二区三区四区视频在线观看 | 在线视频观看91| 久久66热re国产| 人妻体体内射精一区二区| 精品一区二区三区久久久| 一级网站在线观看| 国产精品一区二区三区四区| 色悠悠在线视频| 国产成人99久久亚洲综合精品| 中文字幕在线播放视频| av福利精品导航| 国产精品情侣呻吟对白视频| 中文字幕不卡的av| 农村黄色一级片| 亚洲综合免费观看高清完整版在线 | 亚洲国产精品yw在线观看| 欧美hdfree性xxxx| 亚洲视频在线观看免费| 国产精品一区在线看| 久久精品国产96久久久香蕉| 老司机福利在线视频| 久久免费视频观看| 亚洲天堂电影| 国产日韩在线看片| 日韩精品久久久久久久软件91| 国产欧美一区二区三区另类精品| 国产图片一区| 正在播放精油久久| 综合一区av| 国产激情在线观看视频| 肉丝袜脚交视频一区二区| 91麻豆国产精品| 天天摸日日摸狠狠添| 久久一夜天堂av一区二区三区| 少妇愉情理伦三级| 亚洲人吸女人奶水| wwwwww国产| 在线观看国产日韩| 亚洲高清视频在线播放| 亚洲国产精品久久久| 你懂的在线视频| 久久97精品久久久久久久不卡| www在线观看黄色| 成人激情免费在线| 精品综合久久88少妇激情| 亚洲国产激情一区二区三区| 亚洲欧洲日韩| 一区二区三区入口| 国产成人三级在线观看| 国产探花视频在线播放| 亚洲黄色性网站| 丰满人妻一区二区三区四区| 欧美一区二区三区公司| 婷婷亚洲一区二区三区| 欧美日韩国产999| 另类专区亚洲| 国产精品久久久久久久免费大片| 国产欧美日韩视频在线| 青草网在线观看| 日韩二区三区在线观看| 男人网站在线观看| 欧美国产精品一区二区| 日韩美女黄色片| 欧美日韩国产综合久久| 色播在线观看| 欧美久久久精品| 久久野战av| 久久久婷婷一区二区三区不卡| 天堂网在线观看国产精品| 国产精品亚洲二区在线观看| 国产精品一区二区三区四区 | 久久国产欧美| 亚洲天堂美女视频| 亚洲视频在线一区| 一区二区三区播放| 精品在线小视频| 免费影视亚洲| 97久久精品午夜一区二区| av一区二区高清| 好男人www社区| 99在线热播精品免费| 国产主播在线播放| 欧美精品久久久久久久久老牛影院| 在线中文字幕视频| 韩国精品美女www爽爽爽视频| 亚洲资源在线| 亚洲日本无吗高清不卡| 先锋a资源在线看亚洲| 亚洲天堂成人av| 亚洲一区二区中文在线| 午夜精品久久久久久久99热黄桃| 中文字幕精品一区久久久久| 综合日韩av| 欧美二区在线看| 亚洲人成高清| 网站免费在线观看| 亚洲午夜视频在线| 日本xxxx人| 欧美激情高清视频| 欧美视频二区欧美影视| 热久久最新地址| 精品无码三级在线观看视频| 黄视频网站免费看| 欧美男生操女生| 自拍视频在线免费观看| 国产乱人伦真实精品视频| 精品一区av| 中文字幕在线视频精品| 国产精品麻豆99久久久久久| 国产精品久久久久久无人区| 色妞欧美日韩在线| 国内自拍亚洲| 警花观音坐莲激情销魂小说| 麻豆成人久久精品二区三区红| 精品亚洲乱码一区二区 | 丰满少妇高潮久久三区| 欧美疯狂做受xxxx富婆| 免费黄色电影在线观看| 91久久久一线二线三线品牌| 91成人精品| 88av在线播放| 粉嫩老牛aⅴ一区二区三区| 视频一区二区在线播放| 国产精品久久久久久网站| 成人在线一区| 日本少妇一区二区三区| 亚洲一区二区三区小说| 亚洲人成色777777老人头| 45www国产精品网站| 亚洲精品aaaaa| 日韩高清第一页| 亚洲女同ⅹxx女同tv| 五月激情六月婷婷| 日韩av片免费在线观看| 精品视频免费| 极品白嫩少妇无套内谢| 午夜视频一区在线观看| 日色在线视频| 91久久综合亚洲鲁鲁五月天| 在线一区电影| 成人午夜福利一区二区| 欧美视频三区在线播放| 国产黄色在线网站| 蜜桃av噜噜一区二区三| 琪琪一区二区三区| 精品少妇theporn| 日韩成人久久久| 在线一区视频观看| 欧洲精品一区二区三区久久| 91丨porny丨在线| 97在线公开视频| 久久久久久成人精品| 免费成人结看片| 人妻av一区二区三区| 精品久久久久人成| yourporn在线观看视频| 国产一区免费| 青青草成人在线观看| 粉嫩aⅴ一区二区三区| 精品高清一区二区三区| 日韩精品视频无播放器在线看| 91丨九色丨国产在线| 亚洲免费播放| 人妻人人澡人人添人人爽| 亚洲国产日韩欧美在线图片| 经典三级一区二区| 狠狠干 狠狠操| 国产精品视频九色porn| 少妇喷水在线观看| 国产精品视频一区国模私拍 | 亚洲福利影片在线| 精品69视频一区二区三区| 国产 福利 在线| 亚洲青青青在线视频| 欧美亚洲日本| 精品久久久久久亚洲| 久久成人18免费观看| 亚洲 国产 日韩 欧美| 久久91精品国产91久久久| 久操精品在线| 国产精品第七页| 欧美一区二区久久| 视频二区不卡| 精品国产免费av| 又紧又大又爽精品一区二区| 久色视频在线| 欧美日韩三区四区| 丰满少妇久久久久久久| 精品人妻少妇嫩草av无码专区| 日韩av电影免费观看高清| 国产在线成人| 激情综合五月网| 日韩一区二区三区在线播放| 亚洲丁香日韩| 欧美 日本 国产| 精品久久一区二区| 粉嫩av国产一区二区三区| 亚洲人视频在线| 91国模大尺度私拍在线视频| 污污网站在线观看| 人妻无码一区二区三区四区| 国产日产欧美一区| 伪装者在线观看完整版免费| 久久波多野结衣| 成人妖精视频yjsp地址| 蜜臀久久久久久999| 亚洲一区二区少妇| 久久99国产精品免费| 国产熟女精品视频| 国产欧美日韩视频| 日韩avvvv在线播放| 国产成人av免费| 日韩美女在线观看| 亚洲永久在线| 国产主播第一页| 青青草一区二区| 亚洲综合精品| 欧美三级网站在线观看| 欧美一区二三区| 国产欧美不卡| 精品成人无码久久久久久| 欧美一级大胆视频| 亚洲一级在线| 久久久久精彩视频| 国产精品久久久久久av| 久热综合在线亚洲精品| 中文字幕视频免费观看| 国产成人综合精品在线| 久久久久久黄| 亚洲综合网av| 成人在线激情视频| 狠狠色2019综合网| 国产18精品乱码免费看| 国产经典一区二区三区| 丁香婷婷综合五月| 中文字幕中文字幕在线中文字幕三区| 久99久在线| 91色婷婷久久久久合中文| 同心难改在线观看| 伊人色综合影院| 亚洲免费视频中文字幕| 97caopor国产在线视频| 成人综合视频在线| 91黄色免费网站|