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

第三十四:6.4.【v-model】

6.4.【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事件。

    <!-- 组件标签上使用v-model指令 -->
    <AtguiguInput v-model="userName"/>
    ​
    <!-- 组件标签上v-model的本质 -->
    <AtguiguInput :modelValue="userName" @update:model-value="userName = $event"/>

    AtguiguInput组件中:

    <template>
      <div class="box">
        <!--将接收的value值赋给input元素的value属性,目的是:为了呈现数据 -->
        <!--给input元素绑定原生input事件,触发input事件时,进而触发update:model-value事件-->
        <input 
           type="text" 
           :value="modelValue" 
           @input="emit('update:model-value',$event.target.value)"
        >
      </div>
    </template>
    ​
    <script setup lang="ts" name="AtguiguInput">
      // 接收props
      defineProps(['modelValue'])
      // 声明事件
      const emit = defineEmits(['update:model-value'])
    </script>
  4. 也可以更换value,例如改成abc

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

    AtguiguInput组件中:

    <template>
      <div class="box">
        <input 
           type="text" 
           :value="abc" 
           @input="emit('update:abc',$event.target.value)"
        >
      </div>
    </template>
    ​
    <script setup lang="ts" name="AtguiguInput">
      // 接收props
      defineProps(['abc'])
      // 声明事件
      const emit = defineEmits(['update:abc'])
    </script>
  5. 如果value可以更换,那么就可以在组件标签上多次使用v-model

    <AtguiguInput v-model:abc="userName" v-model:xyz="password"/>

相关文章:

  • Kali换源
  • 【Linux高级IO】多路转接(poll epoll)
  • 第49天:Web开发-JavaEE应用SpringBoot栈模版注入ThymeleafFreemarkerVelocity
  • Oracle 认证为有哪几个技术方向
  • python中如何组织项目工程文件
  • 一文学会Volatile关键字
  • DeepSeek 开源周:第六天的“One More Thing” – DeepSeek-V3/R1 推理系统的概述
  • 【Web Cache Deception简介】
  • 将QT移植到RK3568开发板
  • HarmonyOS学习第11天:布局秘籍RelativeLayout进阶之路
  • 旁路挂载实验
  • JavaScript 数据类型和数据结构:从基础到实践
  • ASPNET Core笔试题 【面试宝典】
  • ubuntu 20.04 安装labelmg
  • MyBatis-Plus 分页查询(PageHelper)
  • Debian系统查看OS Loader、内核和init/systemd相关信息
  • 常见的非关系性数据库
  • 欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、马氏距离理解学习
  • c++ 画数学函数图
  • 序列化选型:字节流抑或字符串
  • 引用网站信息怎么做备注/东莞营销网站建设优化
  • 06628网页制作与网站建设/百度百度一下
  • 九江做网站开发需要多少钱/新站优化案例
  • wordpress网站全过程/交换友情链接的渠道
  • 网站开发工具 mac/成都网站快速优化排名
  • 做app的模板下载网站有哪些/链交换反应