当前位置: 首页 > news >正文

组件通信-v-model

  1. 概述:实现 父↔子 之间相互通信。

  2. 前序知识 —— v-model的本质

<!-- 使用v-model指令 -->
<input type="text" v-model="userName"><!-- v-model的本质是下面这行代码 -->
<input type="text" :value="userName" @input="userName =(<HTMLInputElement>$event.target).value"
>

     3.(父组件)组件标签上的v-model的本质::moldeValueupdate:modelValue事件。

<script setup lang="ts">
import { ref } from 'vue'
import AtInput from './AtInput.vue'
const username = ref('zhangsan')
</script><template><div class="father"><h1>父组件</h1><!-- 第一种写法 --><AtInput v-model="username" /><!-- 第二种写法 --><!-- <AtInput :modelValue="username" @update:modelValue="username = $event" /> --></div></template>

(子组件) AtInput组件中:

<script setup lang="ts">
// 接收props
defineProps(['modelValue'])// 声明事件
const emit= defineEmits(['update:modelValue'])
</script><template><div class="input"><input type="text" :value="modelValue"@input="emit('update:modelValue',(<HTMLInputElement>$event.target).value)"></div></template>

4.也可以更换value,例如改成ming

<!-- 也可以更换value,例如改成abc-->
<AtInputv-model:ming="userName"/><!-- 上面代码的本质如下 -->
<AtInput:ming="userName" @update:ming="userName = $event"/>

AtInput组件中

<template><input type="text" :value="ming" @input="emit('update:abc',$event.target.value)">
</template><script setup lang="ts" name="AtInput">// 接收propsdefineProps(['ming'])// 声明事件const emit = defineEmits(['update:ming'])
</script>

5.如果value可以更换,那么就可以在组件标签上多次使用v-model

<AtInput v-model:ming="userName" v-model:mima="password"/>

相关文章:

  • [Control-Chaos] Toxic Cascade(毒性級鏈)
  • 青少年编程与数学 02-018 C++数据结构与算法 22课题、并行算法
  • linux的信号量初识
  • 【Vue】Vue与UI框架(Element Plus、Ant Design Vue、Vant)
  • 第一章:A Primer on Memory Consistency and Cache Coherence - 2nd Edition
  • C++之IO流
  • 计算方法实验四 解线性方程组的间接方法
  • 【Unity】使用XLua实现C#访问Lua文件
  • JavaScript常规解密技术解析指南
  • 对称加密算法(AES、ChaCha20和SM4)Python实现——密码学基础(Python出现No module named “Crypto” 解决方案)
  • Linux系统:进程程序替换以及相关exec接口
  • 大学生入学审核系统设计与实现【基于SpringBoot + Vue 前后端分离技术】
  • 记忆翻牌游戏:认知科学与状态机的交响曲
  • 关于在vscode终端不能执行npm
  • React 组件prop添加类型
  • 【数据结构】String字符串的存储
  • React memo
  • C++八股--three day --设计模式之单例和工厂
  • 【数据结构】励志大厂版·初阶(复习+刷题):栈与队列
  • 系统架构设计师:设计模式——结构型设计模式
  • “仿佛一场追星粉丝会”,老铺黄金完成国内头部商业中心全覆盖,品牌化后下一步怎么走?
  • 商务部新闻发言人就中美经贸对话磋商情况答记者问
  • 全球最大汽车板供应商宝钢股份:汽车工业加速转型中材料商如何共舞?
  • 国家医保局副局长颜清辉调任人社部副部长
  • 视频丨中国海警位中国黄岩岛领海及周边区域执法巡查
  • 共绘“彩色上海”,IP SH艺术共创沙龙首期圆满举办