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>
相关推荐
hh随便起个名6 小时前
力扣二叉树的三种遍历
javascript·数据结构·算法·leetcode
我是小路路呀6 小时前
element级联选择器:已选中一个二级节点,随后又点击了一个一级节点(仅浏览,未确认选择),此时下拉框失去焦点并关闭
javascript·vue.js·elementui
程序员爱钓鱼6 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
PineappleCoder7 小时前
工程化必备!SVG 雪碧图的最佳实践:ID 引用 + 缓存友好,无需手动算坐标
前端·性能优化
JIngJaneIL7 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
敲敲了个代码7 小时前
隐式类型转换:哈基米 == 猫 ? true :false
开发语言·前端·javascript·学习·面试·web
澄江静如练_7 小时前
列表渲染(v-for)
前端·javascript·vue.js
JustHappy8 小时前
「chrome extensions🛠️」我写了一个超级简单的浏览器插件Vue开发模板
前端·javascript·github
Loo国昌8 小时前
Vue 3 前端工程化:架构、核心原理与生产实践
前端·vue.js·架构