vue3 update:modelValue用法小結(jié)
在Vue 3中,update:modelValue是v-model指令的默認(rèn)事件,用于在組件內(nèi)部通知父組件更新綁定的值。這種命名約定是固定的,當(dāng)你在組件上使用v-model而沒(méi)有指定參數(shù)時(shí)。然而,Vue 3也提供了靈活性,允許開(kāi)發(fā)者自定義綁定的屬性和事件,以適應(yīng)不同的場(chǎng)景和需求。
標(biāo)準(zhǔn)使用
當(dāng)你在Vue組件上使用v-model時(shí),默認(rèn)情況下它綁定到組件的modelValue prop,并監(jiān)聽(tīng)update:modelValue事件。這是Vue框架的標(biāo)準(zhǔn)命名約定。這意味著,如果你在自定義組件內(nèi)部需要接收輸入并希望外部能夠通過(guò)v-model與之雙向綁定,你需要:
- 接收一個(gè)名為
modelValue的prop。 - 在需要更新值時(shí),觸發(fā)名為
update:modelValue的事件。
自定義模型參數(shù)
Vue 3支持通過(guò)使用v-model的參數(shù)來(lái)自定義這些名稱(chēng)。這對(duì)于創(chuàng)建可以接收和更新多個(gè)值的組件特別有用。例如,如果你有一個(gè)組件需要同時(shí)管理兩種類(lèi)型的數(shù)據(jù)(比如,一個(gè)顏色選擇器可能需要分別控制顏色和透明度),你可以這樣做:
<template>
<input
type="color"
:value="modelValue"
@input="updateValue($event.target.value)"
>
<input
type="range"
:value="opacity"
@input="updateOpacity($event.target.value)"
>
</template>
<script setup>
import { defineProps, defineEmits } from 'vue';
const props = defineProps({
modelValue: String,
opacity: Number
});
const emit = defineEmits(['update:modelValue', 'update:opacity']);
function updateValue(value) {
emit('update:modelValue', value);
}
function updateOpacity(value) {
emit('update:opacity', value);
}
</script>
在父組件中使用:
<template>
<ColorPicker
v-model="color"
v-model:opacity="colorOpacity"
/>
</template>
<script setup>
import { ref } from 'vue';
import ColorPicker from './ColorPicker.vue';
const color = ref('#ffffff');
const colorOpacity = ref(100);
</script>
在這個(gè)例子中,顏色和透明度分別通過(guò)v-model和v-model:opacity進(jìn)行綁定,每個(gè)綁定分別監(jiān)聽(tīng)它們自己的更新事件。
總結(jié)
update:modelValue是Vue 3中用于v-model的默認(rèn)事件命名約定,但不是固定不變的。開(kāi)發(fā)者可以通過(guò)指定v-model的參數(shù)來(lái)自定義這些名稱(chēng),這提供了額外的靈活性,使得組件可以根據(jù)不同的情況進(jìn)行調(diào)整。這種靈活性是Vue 3對(duì)現(xiàn)代應(yīng)用開(kāi)發(fā)需求的響應(yīng)。
到此這篇關(guān)于vue3 update:modelValue用法小結(jié)的文章就介紹到這了,更多相關(guān)vue3 update:modelValue內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實(shí)現(xiàn)短信驗(yàn)證碼登錄功能(流程詳解)
無(wú)論是移動(dòng)端還是pc端登錄或者注冊(cè)界面都會(huì)見(jiàn)到手機(jī)驗(yàn)證碼登錄這個(gè)功能,輸入手機(jī)號(hào),得到驗(yàn)證碼,這篇文章主要介紹了基于vue實(shí)現(xiàn)短信驗(yàn)證碼登錄功能,需要的朋友可以參考下2019-12-12
vue-cli history模式實(shí)現(xiàn)tomcat部署報(bào)404的解決方式
這篇文章主要介紹了vue-cli history模式實(shí)現(xiàn)tomcat部署報(bào)404的解決方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
vue3如何實(shí)現(xiàn)表格內(nèi)容無(wú)縫滾動(dòng)(又寫(xiě)了一堆冗余代碼)
這篇文章主要給大家介紹了關(guān)于vue3如何實(shí)現(xiàn)表格內(nèi)容無(wú)縫滾動(dòng)的相關(guān)資料,在Vue3項(xiàng)目中難免會(huì)遇到讓列表滾動(dòng)的需求,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
vue-cli3使用postcss-plugin-px2rem方式
這篇文章主要介紹了vue-cli3使用postcss-plugin-px2rem方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
vue實(shí)現(xiàn)el-select 觸底分頁(yè)+遠(yuǎn)程搜索的示例
有的時(shí)候數(shù)據(jù)量比較大,比如幾千甚至上萬(wàn)條的時(shí)候,如果直接賦值,整個(gè)頁(yè)面的 dom 會(huì)被撐爆,本文主要介紹了vue實(shí)現(xiàn)el-select 觸底分頁(yè)+遠(yuǎn)程搜索的示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
vue使用highcharts自定義圖例點(diǎn)擊事件
這篇文章主要為大家詳細(xì)介紹了vue使用highcharts自定義圖例點(diǎn)擊事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
element中form組件prop嵌套屬性的問(wèn)題解決
本文主要介紹了element中form組件prop嵌套屬性的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
three.js實(shí)現(xiàn)vr全景圖功能實(shí)例(vue)
去年全景圖在微博上很是火爆了一陣,正好我也做過(guò)一點(diǎn)全景相關(guān)的項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于three.js實(shí)現(xiàn)vr全景圖功能的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
vue-cli中的babel配置文件.babelrc實(shí)例詳解
Babel是一個(gè)廣泛使用的轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在現(xiàn)有環(huán)境執(zhí)行。本文介紹vue-cli腳手架工具根目錄的babelrc配置文件,感興趣的朋友一起看看吧2018-02-02

