vue使用v-model實(shí)現(xiàn)父子組件傳值之子父組件同步更新方式
基于vue2和vue3兩個(gè)版本的框架略顯不同,所以我分開的來講:
1、vue2
子組件(my-input.vue):
<template>
<input type="text" :value="name" @input="inputChange" />
</template>
<script>
export default {
model: {
prop: 'name',
event: 'change'
},
props: {
name: {
type: String,
default: ''
}
},
methods: {
inputChange(e) {
this.$emit('change', e.target.value)
}
},
}
</script>父組件:
<template>
<my-input v-model="name" />
</template>
<script>
import MyInput from './my-input.vue'
export default {
data() {
return {
name: '張三'
}
},
}
</script>子組件:
- 使用model的name和event來指定變量名和修改事件名;
- 通過props接收一個(gè)值(舉例name),
- 通過this.$emit執(zhí)行change事件進(jìn)行對數(shù)據(jù)進(jìn)行修改,實(shí)現(xiàn)數(shù)據(jù)雙向綁定功能;
父組件:組件直接使用 v-model綁定變量即可
2、vue3
子組件:
<template>
<input :value="modelValue" @input="updateValue" />
</template>
<script setup>
import { defineProps, defineEmits } from 'vue'
const props = defineProps({
modelValue: {
type: String,
required: true
}
})
const emits = defineEmits(['update:modelValue'])
const updateValue = (event) => {
emits('update:modelValue', event.target.value)
}
</script>父組件:
<template>
<div>
<my-input type="text" v-model="name" />
</div>
</template>
<script setup>
import MyInput from './my-input.vue'
let name = ref('')
</script>總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中如何合并el-table第一列相同數(shù)據(jù)
這篇文章主要介紹了Vue中如何合并el-table第一列相同數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
深入了解vue-router原理并實(shí)現(xiàn)一個(gè)小demo
這篇文章主要為大家詳細(xì)介紹了vue-router原理并實(shí)現(xiàn)一個(gè)小demo,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
Vue實(shí)現(xiàn)簡單基礎(chǔ)的圖片裁剪功能
這篇文章主要為大家詳細(xì)介紹了如何利用Vue2實(shí)現(xiàn)簡單基礎(chǔ)的圖片裁剪功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-09-09
解決vue+router路由跳轉(zhuǎn)不起作用的一項(xiàng)原因
這篇文章主要介紹了解決vue+router路由跳轉(zhuǎn)不起作用的一項(xiàng)原因,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Nuxt pages下不同的頁面對應(yīng)layout下的頁面布局操作
這篇文章主要介紹了Nuxt pages下不同的頁面對應(yīng)layout下的頁面布局操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測功能
這篇文章主要介紹了Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

