vue3中emit('update:modelValue')使用简单示例
短信预约 -IT技能 免费直播动态提醒
父
<template>
<TestCom v-model="test1" v-model:test2="test2"></TestCom>
<h1>{{test1}}测试1</h1>
<h1>{{test2}}测试2</h1>
</template>
<script setup>
import { ref, reactive } from 'vue'
const test1 = ref('')
const test2 = ref('')
</script>
子(setup语法糖)
<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 没有指定参数名,则默认是 modelValue
modelValue:{
type:String,
default: 'test'
},
test2: {
type: String,
default: 'aaa'
}
})
let message = ref('123')
let message2 = ref('456')
// 因为props.modelValue、props.test2是非引用类型,改变时,需要监听,对响应式数据重新赋值
watch(()=> props.modelValue,() => {message.value = props.modelValue})
watch(()=> props.test2,() => {message2.value = props.test2})
// 数据双向绑定
const changeInfo = (info) => {
emit('update:modelValue', info)
}
const changeInfo2 = (info2) => {
emit('update:test2', info2)
}
</script>
子(常规写法)
<script>
import { ref, watch } from 'vue';
export default {
props: {
// 父组件 v-model 没有指定参数名,则默认是 modelValue
modelValue:{
type:String,
default: 'test'
},
test2: {
type: String,
default: 'aaa'
}
},
setup(props, { emit }) {
let message = ref('123')
let message2 = ref('456')
// 因为props.modelValue、props.test2是非引用类型,改变时,需要监听,对响应式数据重新赋值
watch(()=> props.modelValue,() => {message.value = props.modelValue})
watch(()=> props.test2,() => {message2.value = props.test2})
// 数据双向绑定
const changeInfo = (info) => {
emit('update:modelValue', info)
}
const changeInfo2 = (info2) => {
emit('update:test2', info2)
}
return {
message, message2, changeInfo, changeInfo2
}
}
}
</script>
补充:项目中使用 富文本编辑器数据问题 父组件
<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) // 编辑器数据
watch(
() => props.modelValue,
(d) => (tinymceData.value = d)
)
watch(
() => tinymceData.value,
(data) => emit('update:modelValue', data)
) // 监听富文本输入值变动
return {
tinymceData,
}
},
}
</script>
总结
到此这篇关于vue3中emit('update:modelValue')使用的文章就介绍到这了,更多相关vue3 emit('update:modelValue')使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341