父子組件資料傳遞 props、emit

閱讀時間約 5 分鐘

當 父組件 有數據想傳送到 子組件 就可以使用props

1​. 父層傳遞設置

可以在父組件的屬性給予一個值,當作要傳送到子組件的資料。

<!-- App.vue (父組件) -->
<template>
<div>
<ChildComponent greeting="Hello" name="MAY" />
</div>
</template>

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

在 屬性上的props名稱命名規則,須使用kebab-case(烤肉串),不可以使用camelCase(駱峰)。

2.子層接收數據

子組件可以宣告props來接收來自父組件的數據,指定數據名稱必須要使用 camelCase (駱峰)來設置接收。

可以通過在子組件中使用 defineProps 來接收父組件傳遞的 props。

<!-- ChildComponent.vue (子組件) -->
<template>
<div>
<p>{{ greeting }}, {{ name }}!</p>
</div>
</template>

<script setup>
import { defineProps } from 'vue';

const props = defineProps({
greeting: String,
name: String
});
</script>

它被包含在父組件 App.vue 中。它接收來自父組件的 greetingname 兩個 props,並在模板中使用它們。


那如果今天當你需要在子組件中觸發一個事件並將數據傳遞給父組件時,你可以使用 emit

<!-- ChildComponent.vue (子組件) -->
<template>
<button @click="handleClick">Click me!</button>
</template>

<script setup>
import { defineEmits } from 'vue';

const emits = defineEmits(['button-click']);

const handleClick = () => { emits('button-click', 'Some data from child'); }

</script>

在子組件中有點擊事件會觸發 handleClick 方法。在這個方法中,我們使用 emits 來觸發一個名為 button-click 的事件,同時將一些數據 'Some data from child' 作為參數傳遞。

<!-- App.vue (父組件) -->
<template>
<div>
<ChildComponent @button-click="handleButtonClick" />
<p>{{ message }}</p>
</div>
</template>

<script setup>
import ChildComponent from './ChildComponent.vue';
import { ref } from 'vue';

const message = ref('');

const handleButtonClick = (data) => { message.value = data; }

</script>

在父組件 App.vue 中,我們使用 ChildComponent 並監聽子組件觸發的 button-click 事件。當事件被觸發時,handleButtonClick 方法會被調用並接收從子組件傳遞過來的數據。在這個例子中,我們將這個數據賦值給 message 變量,並在模板中渲染出來。這樣子組件就可以通過 emit 將數據傳遞給父組件。

參考資料 :

父子組件資料傳遞 props、$emit | Docs99 (docs-99.vercel.app)


    2會員
    14內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    郭欣玫的沙龍 的其他內容
    CSS-position
    閱讀時間約 3 分鐘
    CSS - margin、padding
    閱讀時間約 1 分鐘
    你可能也想看
    創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
    Thumbnail
    avatar
    黑貓老師
    2024-06-29
    父子60天騎鐵馬4000公里壯遊西班牙6條朝聖之路翔州心得有三:江翔州第一次和爸爸上台演講,這對於他來說是一次初試啼聲,但卻是一個意義非凡的時刻。 在15分鐘的演講中,他與大家分享了他和爸爸一同騎腳踏車到西班牙和葡萄牙六條朝聖之路的經歷,這趟旅程跨越了兩個月,總計4000公里,對他來說是一段心靈和身體的雙重成長之旅。 首先,翔州在旅程中看到了爸爸由傳
    Thumbnail
    avatar
    江文德
    2024-05-07
    〔 父子洗澡的對話 〕在這篇文章中,一位46歲的父親和他3歲的兒子在浴室裡發生了情緒上的對峙。這篇文章描述了父親在疲憊不堪的情況下,試圖維持冷靜,並最終與兒子一起釋放了情緒。雖然文章內容充滿了父子之間的情感交流,但也有著幽默與溫情的一面。
    Thumbnail
    avatar
    四十爹
    2024-04-21
    【父子攜手獻上天鵝之歌】:《 坂本龍一:OPUS 》告別從來都不是一件容易的事,在明知沒有機會再次見面的情況下,看著所愛之人雙眼闔上,接著經歷各種情緒上的波動到逐漸緩和,歷經和克服這樣的過程是多麼艱難的一件事情。 而當父親坂本龍一被診斷出癌症末期時,他的兒子空音央用兩人對音樂和電影的共同愛好,讓他可以與這個世界劃下完美告別。
    Thumbnail
    avatar
    克里夫異象
    2024-04-08
    父子 「爸,我想出國讀書,您把房子賣了吧!」       「好的兒子。賣好了,錢拿去。」   ……      「爸,我想創業,您把退休金給我吧!」      「好的兒子。領出來了,你拿去。」      ……      「爸,我決定成家,您幫我攢的老婆本
    Thumbnail
    avatar
    文瑜
    2024-03-21
    父子共度的快樂時光父親和兒子在壽山動物園度過愉快時光,一同品味美食、騎U-Bike、欣賞美景、觀賞燈光展演,共同創造難忘回憶。
    Thumbnail
    avatar
    奶油爆米花
    2024-02-06
    父子騎驢的民調在台灣有個奇特現象,越接近選舉就會民調滿天飛,然後媒體及政客拿來作文章,但往往民調跟最後開出來的選票很多時候是大相逕庭的,其實拆解所謂民調其實就那回事,目的上拉高自己聲勢壓低對手聲勢,最好能讓對手陷入如父子騎驢寓言故事般的左右支拙,因為民調看似科學實際上人為操作的痕跡相當難隱藏,從抽樣區域,範圍,年
    avatar
    李建宏
    2023-07-27
    父子34.父子 音樂: 《First Love 初戀》宇多田光うただヒカル 大提琴版本 Cello cover 『cover by YoYo Cello』【經典歌曲系列】First Love 初戀主題曲 所有人對陀羅的身材比例都感到驚嘆不已,他的身材線條完美,從領口、衣長、袖口、臂寬、肩膀、後頸到腰
    Thumbnail
    avatar
    張藏澈
    2023-02-23
    父子相隱,是徇私枉法嗎?這則《論語》很受當代人、特別是大陸的學者所批評,他們認為父子互相為對方的過失而隱瞞,那不是包庇、徇私嗎?因而批評孔子不講法治精神。
    avatar
    yidai zhongshi ye
    2022-01-12
    父子一起工作,一起工作的父子。某天,資源回收倉滿了,行政總務聯繫了資源回收商來清運。 廠商到廠後,我一看是兩個人,一個操作夾子車,一個在下面開堆高機。 處理完資源回收後,我詢問較年長的男生,稱讚開堆高機的年輕男生很優秀,很熟練的開堆高機。 這位年長的大叔跟我說,那是他兒子。 這是總務跟我點點頭,表示認同。
    Thumbnail
    avatar
    Justin Wu(吳寓林所)
    2022-01-07
    父子獨處的一段時光星期六傍晚,媽媽帶珣去檢查眼睛,順便回阿嬤家,弟弟不肯跟,除了擔心影響看神奇寶貝,他也不喜歡到阿嬤家。 奶奶出去唸佛,爺爺煮他的第一千零一種拿手麵給我們吃。飯後,爸爸邀弟弟去公園散步,他先是答應,但臨出大門,卻又反悔,想來是少了玩伴沒意思,家庭裡如果只有一個孩子,真是十分寂寞的。 爸爸散步回來,在客
    avatar
    JB Tan
    2006-12-29