• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Vue 兄弟組件通信的方法(不使用Vuex)

    來源:懂視網 責編:小采 時間:2020-11-27 22:26:40
    文檔

    Vue 兄弟組件通信的方法(不使用Vuex)

    Vue 兄弟組件通信的方法(不使用Vuex):項目中,我們經常會遇到兄弟組件通信的情況。在大型項目中我們可以通過引入vuex輕松管理各組件之間通信問題,但在一些小型的項目中,我們就沒有必要去引入vuex。下面簡單介紹一下使用傳統方法,實現父子組件通信的方法。 簡單實例:我們在a組件中點擊按鈕,將
    推薦度:
    導讀Vue 兄弟組件通信的方法(不使用Vuex):項目中,我們經常會遇到兄弟組件通信的情況。在大型項目中我們可以通過引入vuex輕松管理各組件之間通信問題,但在一些小型的項目中,我們就沒有必要去引入vuex。下面簡單介紹一下使用傳統方法,實現父子組件通信的方法。 簡單實例:我們在a組件中點擊按鈕,將

    項目中,我們經常會遇到兄弟組件通信的情況。在大型項目中我們可以通過引入vuex輕松管理各組件之間通信問題,但在一些小型的項目中,我們就沒有必要去引入vuex。下面簡單介紹一下使用傳統方法,實現父子組件通信的方法。

    簡單實例:我們在a組件中點擊按鈕,將信息傳給b組件,從而使b組件彈出。

    主要的思路就是:先子傳父,在父傳子

    首先我們在 a.vue 組件中 ,給按鈕botton綁定一個handleClick事件,事件中我們通過 this.$emit() 方法去觸發一個自定義事件,并傳遞我們的參數。

    示例中我們通過this.$emit() 去觸發isLogFn 這個方法自定義事件,并將log 參數傳遞出去

    a.vue

    <template>
     <div class="adiv">
     <p>a組件</p>
     <button type="button" v-on:click="handleClick">點擊打開組件b彈窗</button>
     </div>
    </template>
    
    <script>
    
    export default {
     methods: {
     handleClick () {
     this.$emit('isLogFn','log')
     }
     }
    }
    </script>
    
    <style>
    .adiv{
     width: 400px;
     height: 200px;
     border: 1px solid #000;
     margin: 0 auto;
    }
    </style>
    
    

    第二步,我們要在父組件中去監聽這個自定義事件,去觸發對應的方法,并接受a組件傳過來的參數。此時我們就完成了子組件向父組件傳值的過程。

    示例中,<aPage @isLogFn = "lisLogFn"></aPage> 監聽isLogFn 去觸發我們在父組件中定義的方法lisLogFn,并拿到傳過來的 ‘log' 數據。完成子父傳值。

    到此,整個過程還沒有結束,只是完成了一半。接下來我們要完成父子組件傳值,將a組件的信息在傳給b組件。

    在< bPage > 標簽中綁定islog 屬性,動態綁定data中的login 字段,在我們通過lisLogFn 方法拿到 ‘data'之后,我們要判斷 data 傳過來的數據,根據判斷結果去改變data()中的數據,從而將數據傳遞給b組件

    App.vue

    <template>
     <div id="app">
     <aPage @isLogFn = "lisLogFn"></aPage>
     <bPage :isLog = "login"></bPage>
     </div>
    </template>
    
    <script>
    
    import aPage from './components/a.vue'
    import bPage from './components/b.vue'
    
    export default {
     data () {
     return {
     login: 'false'
     }
     },
     name: 'app',
     components: {
     aPage,
     bPage
     },
     methods: {
     lisLogFn (data) {
     if (data == 'log') {
     this.login = 'true'
     }
     }
     }
    }
    </script>
    
    <style>
    </style>
    
    

    最后,b組件中需要創建props,定義一個isLog 屬性,這個屬性就是我們傳過來的數值。然后我們在計算屬性中處理這個數據,最終供b組件使用。示例中,我們在v-show="isLogin" 中用來控制彈窗是否打開。

    切記!不能直接使用這個props,一定要經過computed處理,原因我引用vue官方說明

    單向數據流

    b.vue

    <template>
     <div class="bdiv" v-show="isLogin">我是組件B彈窗</div>
    </template>
    
    <script>
    export default {
     props: ['isLog'],
     data () {
     return {
    
     }
     },
     computed: {
     isLogin () {
     if(this.isLog == 'true'){
     return true
     } else {
     return false
     }
     }
     }
    }
    </script>
    
    <style>
     .bdiv{
     width: 200px;
     height: 200px;
     border: 1px #000 solid;
     margin: 0 auto;
     }
    
    </style>
    
    

    總結: 想要實現兄弟組件傳值,一定要首先熟悉子父,父子之間的傳值。

    子父:

    1. 子組件中需要以某種方式例如點擊事件的方法來觸發一個自定義事件
    2. 將需要傳的值作為$emit的第二個參數,該值將作為實參傳給響應自定義事件的方法
    3. 在父組件中注冊子組件并在子組件標簽上綁定對自定義事件的監聽

    父子:

    1. 子組件在props中創建一個屬性,用以接收父組件傳過來的值
    2. 在子組件標簽中添加子組件props中創建的屬性,把需要傳給子組件的值賦給該屬性

    文中示例 github 地址:https://github.com/enjoy-pany/vue-emit

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Vue 兄弟組件通信的方法(不使用Vuex)

    Vue 兄弟組件通信的方法(不使用Vuex):項目中,我們經常會遇到兄弟組件通信的情況。在大型項目中我們可以通過引入vuex輕松管理各組件之間通信問題,但在一些小型的項目中,我們就沒有必要去引入vuex。下面簡單介紹一下使用傳統方法,實現父子組件通信的方法。 簡單實例:我們在a組件中點擊按鈕,將
    推薦度:
    標簽: 方法 VUE 通信
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 午夜一级日韩精品制服诱惑我们这边 | 久久久精品人妻一区二区三区蜜桃| 九九热精品在线| 亚洲韩国精品无码一区二区三区 | 狠狠精品久久久无码中文字幕 | 最新在线精品国自av| 精品无码人妻夜人多侵犯18| 久久无码人妻精品一区二区三区| 亚洲精品自产拍在线观看动漫| 日韩精品无码永久免费网站| 国产99视频精品免费视频76| 92国产精品午夜福利| 欧美在线精品一区二区三区| 国产精品白丝AV嫩草影院| 国产精品成人在线| 久久婷婷国产综合精品| 久久精品国产亚洲网站| 国产精品视频一区二区三区四| 久久久精品久久久久久| 国产精品夜色视频一级区| 亚洲精品性视频| 国产精品久久久久天天影视| 18国产精品白浆在线观看免费| 国产精品久久久久AV福利动漫| 久久久无码精品亚洲日韩蜜臀浪潮 | 四虎国产精品永久地址49| www.亚洲精品.com| 精品久久久久中文字幕日本| 国语自产少妇精品视频蜜桃| 熟妇无码乱子成人精品| 亚洲精品无码成人片久久 | 精品久久久久国产免费| 国产原创精品 正在播放| 精品偷自拍另类在线观看丰满白嫩大屁股ass | 精品久久久久久国产免费了| 久久久这里有精品中文字幕| 日韩精品一区二区三区不卡| 在线亚洲欧美中文精品| 亚洲国产精品SSS在线观看AV| 久久99精品久久久久久久不卡| 国产成人精品一区二区秒拍|