最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue 3 中父子組件雙向綁定的 4 種方式(最新推薦)

 更新時間:2025年07月11日 10:02:30   作者:JaysonJin  
本文介紹了Vue3中實現(xiàn)父子組件雙向綁定的四種方式并對比了各自適用場景與優(yōu)缺點,每種方式結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧

?? Vue 3 中父子組件雙向綁定的 4 種方式

? 場景說明

  • 父組件希望將某個值傳遞給子組件,同時希望子組件能夠修改這個值(實現(xiàn)“綁定 + 反向更新”)。
  • 類似于 v-model 的使用效果。

?? 方式一:使用 v-model + modelValue + emit("update:modelValue")

? 推薦:官方支持、語義清晰、適用于表單類組件

子組件寫法:

<!-- components/MyInput.vue -->
<template>
  <input :value="modelValue" @input="$emit('update:modelValue', $event.target.value)" />
</template>
<script setup>
defineProps({
  modelValue: String
})
defineEmits(['update:modelValue'])
</script>

父組件用法:

<MyInput v-model="username" />

?? 方式二:自定義 v-model:xxx 實現(xiàn)多個綁定值

? 多值綁定場景適用,例如表單組件同時綁定 valuechecked

子組件:

<template>
  <input
    :value="modelValue"
    :checked="checked"
    @input="$emit('update:modelValue', $event.target.value)"
    @change="$emit('update:checked', $event.target.checked)"
  />
</template>
<script setup>
defineProps(['modelValue', 'checked'])
defineEmits(['update:modelValue', 'update:checked'])
</script>

父組件:

<MyInput v-model:modelValue="text" v-model:checked="isChecked" />

?? 方式三:使用 v-bind + @update + defineModel(Vue 3.3+)

?? 僅支持 Vue 3.3 及以上版本!

子組件:

<script setup>
const model = defineModel<string>()  // 等價于 props + emit
</script>
<template>
  <input :value="model" @input="model = $event.target.value" />
</template>

父組件:

<MyInput v-model="msg" />

?? 不用顯式聲明 props 和 emits,推薦新項目使用!

?? 方式四:手動通過 props + emit 自定義字段實現(xiàn)綁定

? 適合非表單類組件 / 業(yè)務(wù)交互邏輯強的組件

子組件:

<template>
  <button @click="toggle">{{ active ? 'ON' : 'OFF' }}</button>
</template>
<script setup>
const props = defineProps({ active: Boolean })
const emit = defineEmits(['update:active'])
const toggle = () => {
  emit('update:active', !props.active)
}
</script>

父組件:

<MyToggle v-model:active="isActive" />

?? 小結(jié)對比表

方式特點場景建議
v-model + modelValue最常用,官方推薦表單組件
v-model:xxx 多 model綁定多個值復(fù)合組件(如 input + checked)
defineModel()Vue 3.3+ 自動綁定新項目、輕量雙綁組件
props + emit 自定義字段自定義靈活任意雙向控制場景

? 補充:實現(xiàn)“子改父”但不一定是“綁定”

  • 子組件調(diào)用函數(shù)修改父組件數(shù)據(jù):
<!-- 父組件 -->
<MyChild :value="count" @change="count = $event" />
<!-- 子組件 -->
$emit('change', newValue)
  • 父傳 ref,子組件直接修改 ref.value(不推薦頻繁使用)

到此這篇關(guān)于Vue 3 中父子組件雙向綁定的 4 種方式的文章就介紹到這了,更多相關(guān)Vue 3 父子組件雙向綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue 父組件獲取子組件里面的data數(shù)據(jù)(實現(xiàn)步驟)

    vue 父組件獲取子組件里面的data數(shù)據(jù)(實現(xiàn)步驟)

    在Vue中,父組件可以通過`ref`引用子組件,并通過`$refs`屬性來訪問子組件的數(shù)據(jù),下面分步驟給大家介紹vue 父組件獲取子組件里面的data數(shù)據(jù),感興趣的朋友一起看看吧
    2024-06-06
  • 淺談vuepress 踩坑記

    淺談vuepress 踩坑記

    本篇文章主要介紹了淺談vuepress 踩坑記,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue讀取本地的excel文件并顯示在網(wǎng)頁上方法示例

    vue讀取本地的excel文件并顯示在網(wǎng)頁上方法示例

    這篇文章主要介紹了vue讀取本地的excel文件并顯示在網(wǎng)頁上方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue3.0中使用element UI表單遍歷校驗問題解決

    vue3.0中使用element UI表單遍歷校驗問題解決

    本文主要介紹了vue3.0中使用element UI表單遍歷校驗問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Vue動態(tài)設(shè)置圖片時src不生效的原因及解決方法

    Vue動態(tài)設(shè)置圖片時src不生效的原因及解決方法

    這篇文章主要介紹了Vue動態(tài)設(shè)置圖片時src不生效的原因及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 如何在Vue項目中添加接口監(jiān)聽遮罩

    如何在Vue項目中添加接口監(jiān)聽遮罩

    這篇文章主要介紹了如何在Vue項目中添加接口監(jiān)聽遮罩,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Vue進階之利用transition標(biāo)簽實現(xiàn)頁面跳轉(zhuǎn)動畫

    Vue進階之利用transition標(biāo)簽實現(xiàn)頁面跳轉(zhuǎn)動畫

    這篇文章主要為大家詳細介紹了Vue如何利用transition標(biāo)簽實現(xiàn)頁面跳轉(zhuǎn)動畫,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起一下
    2023-08-08
  • 在vue中使用公共過濾器filter的方法

    在vue中使用公共過濾器filter的方法

    這篇文章主要介紹了在vue中使用公共過濾器filter的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • Vue實現(xiàn)側(cè)邊導(dǎo)航欄于Tab頁關(guān)聯(lián)的示例代碼

    Vue實現(xiàn)側(cè)邊導(dǎo)航欄于Tab頁關(guān)聯(lián)的示例代碼

    本文主要介紹了Vue實現(xiàn)側(cè)邊導(dǎo)航欄于Tab頁關(guān)聯(lián)的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue3使用element-plus搭建后臺管理系統(tǒng)之菜單管理功能

    vue3使用element-plus搭建后臺管理系統(tǒng)之菜單管理功能

    這篇文章主要介紹了vue3使用element-plus搭建后臺管理系統(tǒng)之菜單管理,使用element-plus el-tree組件快速開發(fā)樹形菜單結(jié)構(gòu),el-tree組件中filter-node-method事件便可以實現(xiàn)樹形菜單篩選過濾功能,需要的朋友可以參考下
    2022-04-04

最新評論

神池县| 观塘区| 鲁甸县| 讷河市| 嵊泗县| 台中市| 吉木萨尔县| 溆浦县| 噶尔县| 张家口市| 淮滨县| 富源县| 尤溪县| 龙口市| 邳州市| 哈巴河县| 仙居县| 孟连| 九龙城区| 洛南县| 布拖县| 太湖县| 都匀市| 梧州市| 武川县| 嘉禾县| 江油市| 青铜峡市| 瓮安县| 晋宁县| 中宁县| 渭源县| 招远市| 贡觉县| 和顺县| 兴城市| 龙江县| 高阳县| 南靖县| 巢湖市| 海兴县|