vue3通过v-model实现父子组件通信

单一值传递

父组件

javascript 复制代码
<template>
  <div >
    <h1>v-model实现父子组件通讯</h1>
    <hr>
    <child1 v-model="num"></child1>
    <!-- 上下两个是等价的 -->
    <child1 :modelValue="num" @update:modelValue="handle"></child1>
  </div>
</template>

<script setup>
import {ref} from 'vue'
import child1 from './child1.vue';
let num = ref(0);
const handle =(value)=> {
  num.value = value
}
</script>

子组件

javascript 复制代码
<template>
  <div>
    <h1>我是子组件</h1>
    <!-- 父组件传过来的值 -->
    <h3>{{ modelValue }}</h3>
    <button @click="$emit('update:modelValue', modelValue+1)">修改父组件的值</button>
  </div>
</template>

<script setup>
let props = defineProps(['modelValue'])
const $emit = defineEmits(['update:modelValue'])
</script>

多个v-model实现父子组件传值

父组件

javascript 复制代码
<template>
  <div >
    <h1>v-model实现父子组件通讯</h1>
    <hr>
    <child1 v-model:firstnum="num1" v-model:secondnum="num2"></child1>
  </div>
</template>

<script setup>
import {ref} from 'vue'
import child1 from './child1.vue';
let num1 = ref(0);
let num2 = ref(0);
</script>

<style lang="scss" scoped></style>

子组件

javascript 复制代码
<template>
  <div>
    <h1>我是子组件</h1>
    <!-- 父组件传过来的值1 -->
    <h3>{{ firstnum }}</h3>
    <!-- 父组件传过来的值2 -->
    <h3>{{ secondnum }}</h3>
    <button @click="handler">修改父组件的值</button>
  </div>
</template>

<script setup>
let props = defineProps(['firstnum', 'secondnum'])
const $emit = defineEmits(['update:firstnum', 'update:secondnum'])
const handler = () => {
  $emit('update:firstnum', props.firstnum+1)
  $emit('update:secondnum', props.secondnum+4)
}
</script>
相关推荐
安心不心安1 小时前
React Router 6 获取路由参数
前端·javascript·react.js
fuyongliang1234 小时前
Linux shell 脚本基础 003
java·服务器·前端
lypzcgf6 小时前
Coze源码分析-工作空间-项目开发-前端源码
前端·人工智能·typescript·系统架构·开源软件·react·安全架构
yuguo.im6 小时前
Chrome DevTools Performance 是优化前端性能的瑞士军刀
前端·javascript·性能优化·chrome devtools
FSHOW8 小时前
【独立开发日记】MQ端到端类型安全
前端·javascript·后端
老华带你飞8 小时前
社区互助|基于SSM+vue的社区互助平台的设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·小程序·毕设·社区互助平台
一支鱼8 小时前
前端使用次数最多的工具封装
前端·typescript·编程语言
GIS之路8 小时前
GDAL 简介
前端
前端工作日常9 小时前
单元测试与E2E测试中使用浏览器的原因及区别
前端·单元测试
chxii9 小时前
7.2elementplus的表单布局与模式
javascript·vue.js·elementui