<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      深入理解 Vue 3 組件通信

      在 Vue 3 中,組件通信是一個關鍵的概念,它允許我們在組件之間傳遞數據和事件。本文將介紹幾種常見的 Vue 3 組件通信方法,包括 propsemitsprovideinject、事件總線以及 Vuex 狀態管理。

      1. 使用 propsemits 進行父子組件通信

      props 傳遞數據

      props 是父組件向子組件傳遞數據的一種機制。在子組件中,通過定義 props 屬性來接收父組件傳遞的數據。

      父組件 (ParentComponent.vue):

      <template>
        <ChildComponent :message="parentMessage" />
      </template>
      
      <script>
      import ChildComponent from './ChildComponent.vue';
      
      export default {
        components: {
          ChildComponent
        },
        data() {
          return {
            parentMessage: 'Hello from Parent Component!'
          };
        }
      };
      </script>

       

      子組件 (ChildComponent.vue):

      <template>
        <div>{{ message }}</div>
      </template>
      
      <script>
      export default {
        props: {
          message: {
            type: String,
            required: true
          }
        }
      };
      </script>

       

      emits 傳遞事件

      子組件可以通過 $emit 方法向父組件發送事件,從而實現從子組件向父組件傳遞信息。

      子組件 (ChildComponent.vue):

      <template>
        <button @click="sendMessage">Send Message</button>
      </template>
      
      <script>
      export default {
        emits: ['messageSent'],
        methods: {
          sendMessage() {
            this.$emit('messageSent', 'Hello from Child Component!');
          }
        }
      };
      </script>

       

      父組件 (ParentComponent.vue):

      <template>
        <ChildComponent @messageSent="handleMessage" />
      </template>
      
      <script>
      import ChildComponent from './ChildComponent.vue';
      
      export default {
        components: {
          ChildComponent
        },
        methods: {
          handleMessage(message) {
            console.log(message);
          }
        }
      };
      </script>

       

      2. 使用 provideinject 進行祖孫組件通信

      provideinject 允許祖父組件和孫組件之間進行通信,而不需要通過中間的父組件傳遞數據。

      祖父組件 (GrandparentComponent.vue):

      <template>
        <ParentComponent />
      </template>
      
      <script>
      import ParentComponent from './ParentComponent.vue';
      
      export default {
        components: {
          ParentComponent
        },
        provide() {
          return {
            grandparentMessage: 'Hello from Grandparent Component!'
          };
        }
      };
      </script>

       

      孫組件 (GrandchildComponent.vue):

      <template>
        <div>{{ grandparentMessage }}</div>
      </template>
      
      <script>
      export default {
        inject: ['grandparentMessage']
      };
      </script>

       

      3. 使用事件總線進行兄弟組件通信

      事件總線是一種常見的用于兄弟組件通信的方法,通常使用 Vue 實例作為事件總線。

      事件總線 (eventBus.js):

      import { reactive } from 'vue';
      
      const eventBus = reactive({});
      export default eventBus;

       

      組件 A (ComponentA.vue):

      <template>
        <button @click="sendMessage">Send Message to Component B</button>
      </template>
      
      <script>
      import eventBus from './eventBus.js';
      
      export default {
        methods: {
          sendMessage() {
            eventBus.message = 'Hello from Component A!';
          }
        }
      };
      </script>

       

      組件 B (ComponentB.vue):

      <template>
        <div>{{ message }}</div>
      </template>
      
      <script>
      import { reactive, toRefs } from 'vue';
      import eventBus from './eventBus.js';
      
      export default {
        setup() {
          const state = reactive({
            message: ''
          });
      
          state.message = eventBus.message;
      
          return {
            ...toRefs(state)
          };
        }
      };
      </script>

       

       

       

      posted @ 2024-07-18 20:15  最小生成樹  閱讀(633)  評論(1)    收藏  舉報
      主站蜘蛛池模板: a在线观看视频在线播放| 人人妻人人妻人人片av| 国产桃色在线成免费视频| 蜜桃成熟色综合久久av| 在线精品国精品国产不卡| 国产av国片精品一区二区| 麻豆tv入口在线看| 白嫩少妇无套内谢视频| av天堂午夜精品一区| 久9视频这里只有精品| 屏东市| 亚洲成在人线AV品善网好看| 国产一级老熟女自拍视频| 五月天免费中文字幕av| 国内揄拍国产精品人妻电影| 日韩熟女精品一区二区三区| 日韩免费码中文在线观看| 亚洲sm另类一区二区三区| 熟妇人妻不卡中文字幕| 巩义市| 日韩精品一区二区高清视频| 国产黄色精品一区二区三区| 成人午夜在线观看日韩| 怡春院久久国语视频免费| 亚洲av色在线观看国产| 中文字幕乱码一区二区免费| 湖口县| 激情综合色综合啪啪五月| 精品日韩精品国产另类专区| 久久精品人妻无码一区二区三区| 噜噜噜噜私人影院| 中文字幕av一区| 香蕉久久夜色精品国产成人| 动漫AV纯肉无码AV电影网| 美女无遮挡免费视频网站| 国产主播精品福利午夜二区| 国产精品久久久久7777| 日本免费观看mv免费版视频网站| 国产中文99视频在线观看| 精品日韩精品国产另类专区| 视频一区视频二区在线视频|