vue3中emit('update:modelValue')使用簡(jiǎn)單示例
父
<template>
<TestCom v-model="test1" v-model:test2="test2"></TestCom>
<h1>{{test1}}測(cè)試1</h1>
<h1>{{test2}}測(cè)試2</h1>
</template>
<script setup>
import { ref, reactive } from 'vue'
const test1 = ref('')
const test2 = ref('')
</script>
子(setup語(yǔ)法糖)
<template>
<input v-model="message" @input="changeInfo(message)" />
<input v-model="message2" @input="changeInfo2(message2)" />
</template>
<script setup>
import { ref, watch } from 'vue';
// 此處引入
const emit = defineEmits(['update:modelValue', 'update:test2'])
const props = defineProps({
// 父組件 v-model 沒(méi)有指定參數(shù)名,則默認(rèn)是 modelValue
modelValue:{
type:String,
default: 'test'
},
test2: {
type: String,
default: 'aaa'
}
})
let message = ref('123')
let message2 = ref('456')
// 因?yàn)閜rops.modelValue、props.test2是非引用類型,改變時(shí),需要監(jiān)聽(tīng),對(duì)響應(yīng)式數(shù)據(jù)重新賦值
watch(()=> props.modelValue,() => {message.value = props.modelValue})
watch(()=> props.test2,() => {message2.value = props.test2})
// 數(shù)據(jù)雙向綁定
const changeInfo = (info) => {
emit('update:modelValue', info)
}
const changeInfo2 = (info2) => {
emit('update:test2', info2)
}
</script>
子(常規(guī)寫法)
<script>
import { ref, watch } from 'vue';
export default {
props: {
// 父組件 v-model 沒(méi)有指定參數(shù)名,則默認(rèn)是 modelValue
modelValue:{
type:String,
default: 'test'
},
test2: {
type: String,
default: 'aaa'
}
},
setup(props, { emit }) {
let message = ref('123')
let message2 = ref('456')
// 因?yàn)閜rops.modelValue、props.test2是非引用類型,改變時(shí),需要監(jiān)聽(tīng),對(duì)響應(yīng)式數(shù)據(jù)重新賦值
watch(()=> props.modelValue,() => {message.value = props.modelValue})
watch(()=> props.test2,() => {message2.value = props.test2})
// 數(shù)據(jù)雙向綁定
const changeInfo = (info) => {
emit('update:modelValue', info)
}
const changeInfo2 = (info2) => {
emit('update:test2', info2)
}
return {
message, message2, changeInfo, changeInfo2
}
}
}
</script>
補(bǔ)充:項(xiàng)目中使用 富文本編輯器數(shù)據(jù)問(wèn)題 父組件
<wm-tinymce ref="editor" v-model="data.introduction" />
子組件
<template>
<div class="tinymce-container">
<editor
v-model="tinymceData"
:api-key="key"
:init="tinymceOptions"
:name="tinymceName"
:readonly="tinymceReadOnly"
/>
</div>
</template>
<script>
import { ref, watch, computed, onMounted } from 'vue'
import tinymce from 'tinymce/tinymce'
import { setupPreview, setupWmPreview, setupIndent2em } from './plugins'
import { key, plugins, toolbar, setting } from './config'
import Editor from '@tinymce/tinymce-vue'
import Modal from './modal/index.vue'
export default {
name: 'WmTinymce',
components: {
Editor,
},
props: {
modelValue: {
type: String,
default: '',
},
},
emits: ['update:modelValue'],
setup(props, { emit }) {
const tinymceData = ref(props.modelValue) // 編輯器數(shù)據(jù)
watch(
() => props.modelValue,
(d) => (tinymceData.value = d)
)
watch(
() => tinymceData.value,
(data) => emit('update:modelValue', data)
) // 監(jiān)聽(tīng)富文本輸入值變動(dòng)
return {
tinymceData,
}
},
}
</script>總結(jié)
到此這篇關(guān)于vue3中emit('update:modelValue')使用的文章就介紹到這了,更多相關(guān)vue3 emit('update:modelValue')使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VUE實(shí)時(shí)監(jiān)聽(tīng)元素距離頂部高度的操作
這篇文章主要介紹了VUE實(shí)時(shí)監(jiān)聽(tīng)元素距離頂部高度的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè)的方法
這篇文章主要介紹了vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
vue實(shí)現(xiàn)同時(shí)設(shè)置多個(gè)倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)同時(shí)設(shè)置多個(gè)倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
Vue from-validate 表單驗(yàn)證的示例代碼
本篇文章主要介紹了Vue from-validate 表單驗(yàn)證的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
在vue中使用export?default導(dǎo)出的class類方式
這篇文章主要介紹了在vue中使用export?default導(dǎo)出的class類方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
vue之?dāng)?shù)據(jù)交互實(shí)例代碼
本篇文章主要介紹了vue之?dāng)?shù)據(jù)交互實(shí)例代碼,vue中也存在像ajax和jsonp的數(shù)據(jù)交互,實(shí)現(xiàn)向服務(wù)器獲取數(shù)據(jù),有興趣的可以了解一下2017-06-06
vue項(xiàng)目中向數(shù)組添加元素的3種方式
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中向數(shù)組添加元素的3種方式,在Vue中添加元素到數(shù)組非常簡(jiǎn)單,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10
element-ui使用el-date-picker日期組件常見(jiàn)場(chǎng)景分析
最近一直在使用 element-ui中的日期組件,所以想對(duì)日期組件常用的做一個(gè)簡(jiǎn)單的總結(jié),對(duì)element-ui el-date-picker日期組件使用場(chǎng)景分析感興趣的朋友一起看看吧2024-05-05

