国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue中父子組件通信

這篇具有很好參考價(jià)值的文章主要介紹了Vue中父子組件通信。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

聚沙成塔·每天進(jìn)步一點(diǎn)點(diǎn)


? 專欄簡(jiǎn)介

Vue學(xué)習(xí)之旅的奇妙世界 歡迎大家來(lái)到 Vue 技能樹(shù)參考資料專欄!創(chuàng)建這個(gè)專欄的初衷是為了幫助大家更好地應(yīng)對(duì) Vue.js 技能樹(shù)的學(xué)習(xí)。每篇文章都致力于提供清晰、深入的參考資料,讓你能夠更輕松、更自信地理解和掌握 Vue.js 的核心概念和技術(shù)。訂閱這個(gè)專欄,讓我們一同踏上更深入的 Vue學(xué)習(xí)之旅!為你的前端技能樹(shù)添磚加瓦!

Vue中父子組件通信,前端小常識(shí),vue.js,前端,javascript


Vue中父子組件通信

在Vue中,父子組件之間的通信是常見(jiàn)的場(chǎng)景。Vue提供了多種方式來(lái)實(shí)現(xiàn)父子組件之間的數(shù)據(jù)傳遞和通信。以下是一些常用的方法:

1. Props

Props 是一種父組件向子組件傳遞數(shù)據(jù)的方式。父組件通過(guò)屬性的方式將數(shù)據(jù)傳遞給子組件,子組件可以通過(guò)定義 props 來(lái)接收這些數(shù)據(jù)。

父組件:

<template>
  <div>
    <child-component :messageFromParent="message"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent,
  },
  data() {
    return {
      message: 'Hello from parent!',
    };
  },
};
</script>

子組件:

<template>
  <div>
    <p>{{ messageFromParent }}</p>
  </div>
</template>

<script>
export default {
  props: ['messageFromParent'],
};
</script>

2. 自定義事件

父組件可以通過(guò)在子組件上綁定自定義事件,并在子組件中使用 $emit 方法觸發(fā)該事件,從而實(shí)現(xiàn)子組件向父組件通信。

子組件:

<template>
  <button @click="sendMessage">Send Message to Parent</button>
</template>

<script>
export default {
  methods: {
    sendMessage() {
      this.$emit('messageToParent', 'Hello from child!');
    },
  },
};
</script>

父組件:

<template>
  <div>
    <child-component @messageToParent="receiveMessage"></child-component>
    <p>{{ messageFromChild }}</p>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent,
  },
  data() {
    return {
      messageFromChild: '',
    };
  },
  methods: {
    receiveMessage(message) {
      this.messageFromChild = message;
    },
  },
};
</script>

3. 使用 v-model

v-model 可以用于在父組件和子組件之間建立雙向綁定關(guān)系,使得父組件可以直接修改子組件的值。

子組件:

<template>
  <input :value="message" @input="$emit('update:message', $event)" />
</template>

<script>
export default {
  props: ['message'],
};
</script>

父組件:

<template>
  <div>
    <child-component v-model="message"></child-component>
    <p>{{ message }}</p>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent,
  },
  data() {
    return {
      message: 'Hello from parent!',
    };
  },
};
</script>

這些方法都可以根據(jù)具體場(chǎng)景選擇,根據(jù)需求和數(shù)據(jù)流方向靈活使用。 Props 適用于父?jìng)髯?,自定義事件適用于子傳父,v-model 可以實(shí)現(xiàn)雙向數(shù)據(jù)綁定。

除了上述提到的Props、自定義事件和v-model,還有一些其他在Vue中實(shí)現(xiàn)父子組件通信的方式,具體取決于開(kāi)發(fā)者的需求和項(xiàng)目的復(fù)雜性:

4. 使用$refs

通過(guò)$refs可以在父組件中訪問(wèn)子組件的實(shí)例,從而直接調(diào)用子組件的方法或訪問(wèn)其數(shù)據(jù)。

子組件:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello from child!',
    };
  },
};
</script>

父組件:

<template>
  <div>
    <child-component ref="childRef"></child-component>
    <p>{{ $refs.childRef.message }}</p>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent,
  },
};
</script>

5. 使用 EventBus

EventBus 是一種通過(guò)中央事件總線來(lái)進(jìn)行組件之間通信的方式,通常通過(guò)一個(gè)空的 Vue 實(shí)例作為事件中心。

// EventBus.js
import Vue from 'vue';
export const EventBus = new Vue();

// 子組件
<template>
  <div>
    <button @click="sendMessage">Send Message</button>
  </div>
</template>

<script>
import { EventBus } from './EventBus.js';

export default {
  methods: {
    sendMessage() {
      EventBus.$emit('messageToParent', 'Hello from child!');
    },
  },
};
</script>
// 父組件
<template>
  <div>
    <p>{{ messageFromChild }}</p>
  </div>
</template>

<script>
import { EventBus } from './EventBus.js';

export default {
  data() {
    return {
      messageFromChild: '',
    };
  },
  created() {
    EventBus.$on('messageToParent', (message) => {
      this.messageFromChild = message;
    });
  },
};
</script>

這些方式都提供了不同的選擇,具體使用哪種方式取決于項(xiàng)目的需求和開(kāi)發(fā)者的偏好。在選擇時(shí)需要考慮組件之間的關(guān)系、數(shù)據(jù)流的方向以及通信的復(fù)雜性。


? 寫(xiě)在最后

歡迎來(lái)到《Vue技能樹(shù)專欄》!本專欄旨在幫助您全面深入地掌握Vue.js,一款現(xiàn)代、靈活且強(qiáng)大的JavaScript框架。無(wú)論您是初學(xué)者還是有一定經(jīng)驗(yàn)的開(kāi)發(fā)者,這里都將為您提供詳細(xì)的指導(dǎo)、實(shí)用的技巧以及深入的理解,助您在Vue.js世界中游刃有余。如果文中出現(xiàn)有瑕疵的地方各位可以通過(guò)主頁(yè)的左側(cè)聯(lián)系我指正,我們一起進(jìn)步,文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-809967.html

到了這里,關(guān)于Vue中父子組件通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3-父子組件間通信

    在實(shí)際業(yè)務(wù)開(kāi)發(fā)的過(guò)程中,我們時(shí)常會(huì)遇到組件間的通信問(wèn)題,比如:父子組件間通信、同級(jí)組件間通信等。本篇文章中主要介紹父子組件間通信。父子組件間通信主要有以下常見(jiàn)形式: 方案 父組件向子組件 子組件向父組件 props/emits props emits v-model/emits v-model emits ref/emits

    2024年02月05日
    瀏覽(92)
  • VUE3+TS(父子、兄弟組件通信)

    目錄 父?jìng)髯又?、方法(子調(diào)用父值、方法) 子傳父值(父調(diào)用子值) 父讀子(子傳父)(父調(diào)用子值、方法) 兄弟(任意組件)通信 引入Mitt來(lái)完成任意組件通信 1、統(tǒng)一規(guī)范寫(xiě)法,通過(guò)在子組件標(biāo)簽上綁定屬性和值,來(lái)傳遞到子組件,子組件再通過(guò)defineProps來(lái)接收,先給其

    2023年04月08日
    瀏覽(21)
  • Vue3父子組件間傳參通信

    Vue3父子組件間傳參通信

    本文主要是記錄Vue3在setup語(yǔ)法糖下的父子組件間傳參的四種方式 Vue3+TypeScript 父組件傳值給子組件主要是由父組件為子組件通過(guò)v-bind綁定數(shù)值,而后傳給子組件;子組件則通過(guò)defineProps接收使用。 如下為父組件 Father.vue 如下為子組件Son.vue 父組件 Father.vue 中在調(diào)用 Son.vue 這個(gè)子

    2024年01月19日
    瀏覽(26)
  • vue3 常用的組件互相通信(父子、兄弟、爺孫、任意組件)

    目錄 前言:目前組件通信方法有好多種,我這挑選一部分來(lái)講 1、父?jìng)髯?2、子傳父 3、兄弟之間通信 3.1、父組件充當(dāng)中間件 3.2、全局事件總線—EventBus 4、爺孫之間通信 5、任意組件、全局 方案 父?jìng)髯?子傳父 props / emits props emits v-model / emits v-model emits ref / emits ref emits provi

    2024年02月15日
    瀏覽(51)
  • vue3探索——組件通信之v-model父子組件數(shù)據(jù)同步

    再很多場(chǎng)景中,我們可能想在子組件中修改父組件的數(shù)據(jù),但事實(shí)上,vue不推薦我們這么做,因?yàn)閿?shù)據(jù)的修改不容易溯源。 在vue2中,我們使用 .sync 修飾符+自定義事件 \\\'update:xxx\\\' ,來(lái)使父子組件數(shù)據(jù)同步。 這里不作過(guò)多說(shuō)明,有需要請(qǐng)自行了解。 vue3的寫(xiě)法與vue2基本一致。最

    2024年02月11日
    瀏覽(22)
  • Vue-Element-Admin項(xiàng)目學(xué)習(xí)筆記(9)表單組件封裝,父子組件雙向通信

    Vue-Element-Admin項(xiàng)目學(xué)習(xí)筆記(9)表單組件封裝,父子組件雙向通信

    前情回顧: vue-element-admin項(xiàng)目學(xué)習(xí)筆記(1)安裝、配置、啟動(dòng)項(xiàng)目 vue-element-admin項(xiàng)目學(xué)習(xí)筆記(2)main.js 文件分析 vue-element-admin項(xiàng)目學(xué)習(xí)筆記(3)路由分析一:靜態(tài)路由 vue-element-admin項(xiàng)目學(xué)習(xí)筆記(4)路由分析二:動(dòng)態(tài)路由及permission.js vue-element-admin項(xiàng)目學(xué)習(xí)筆記(5)路由分析

    2024年02月11日
    瀏覽(30)
  • vue3探索——使用ref與$parent實(shí)現(xiàn)父子組件間通信

    在vue3中,可以使用vue3的API defineExpose() 函數(shù)結(jié)合 ref 或者 $parent ,實(shí)現(xiàn)父子組件數(shù)據(jù)的傳遞。 子組件:通過(guò) defineExpose() 函數(shù),向外暴露響應(yīng)式數(shù)據(jù)或者方法 父組件:通過(guò) ref 獲取子組件實(shí)例,進(jìn)而獲取子組件暴露的響應(yīng)式數(shù)據(jù)或方法 ?? 你沒(méi)看錯(cuò)!這里的 ref 就是經(jīng)常用來(lái)定

    2024年02月10日
    瀏覽(25)
  • JavaScript 發(fā)布-訂閱設(shè)計(jì)模式實(shí)現(xiàn) React EventBus(相當(dāng)于vue的$Bus)非父子之間通信

    參考文檔:https://github1s.com/browserify/events/blob/main/events.js ? ? ? ? ? ? ? ? ?https://www.npmjs.com/package/events ? ? ? ? ? ? ? ? ?https://github.com/browserify/events ? ? ? ? ? ? ? ? ? ? 首先先新建一個(gè)文件eventBus.tsx 然后再組件A使用=接收 然后再組件B使用=觸發(fā) ? ? 安裝這個(gè)events插件

    2023年04月18日
    瀏覽(374)
  • Vue3的手腳架使用和組件父子間通信-插槽(Options API)學(xué)習(xí)筆記

    全局安裝最新vue3 升級(jí)Vue CLI: 如果是比較舊的版本,可以通過(guò)下面命令來(lái)升級(jí) 通過(guò)腳手架創(chuàng)建項(xiàng)目 父組件 子組件 UserComponent.vue 父組件 **子組件1 JiaComponent.vue ** ** 子組件2 JianComponent.vue ** 父組件 子組件 TitleComponents.vue 父組件 **子組件 NavComponent.vue ** 父組件 子組件 NavCompone

    2024年02月05日
    瀏覽(50)
  • vue3中監(jiān)聽(tīng),組件通信如父子傳值、Vuex、Event Bus的使用

    目錄 一、監(jiān)聽(tīng) 二、父子傳值: 1、父?jìng)髯樱?2、子傳父 三、全局狀態(tài)管理(Vuex): 四、事件總線(Event Bus): 我們有一個(gè)父組件ParentComponent和一個(gè)子組件ChildComponent。在父組件中,我們使用:childProp=\\\"parentData\\\"將數(shù)據(jù)傳遞給子組件。在子組件中,我們使用defineProps來(lái)接收父組件

    2024年02月13日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包