Vue3中父子组件实现数据双向绑定效果

2023-11-12

父组件:

<template>
  <div class="user">
    <hy-form v-model="formData" />
  </div>
</template>

<script lang="ts">
import { defineComponent, ref } from 'vue'
import HyForm from '@/base-ui/form'

export default defineComponent({
  components: { HyForm },
  name: 'sysUser',
  setup() {
    const formData = ref({
      id: '',
      password: '',
    })
    return {
      formData,
    }
  }
})
</script>

<style scoped></style>

将formData数据使用v-model传递给子组件

子组件:

<template>
  <div class="hy-form">
  <el-input
    placeholder="请输入用户"
    v-model="formData.id"
  />
  </div>
</template>

<script lang="ts">
import { defineComponent, ref, watch } from 'vue'

export default defineComponent({
  props: {
 	 // modelValue为约定俗成字段,就是父组件传来的v-model绑定的值
    modelValue: {
      type: Object,
      required: true
    },
  },
  emits: ['update:modelValue'],
  setup(props, { emit }) {
  	// 这里父子是因为不直接修改modelValue中的数据,保持单一数据流
    const formData = ref({ ...props.modelValue })
    // 监听formData中数据的改变
    watch(
      formData,
      (newValue) => {
      	// 数据双向绑定给modelValue
        emit('update:modelValue', newValue)
      },
      {
        deep: true
      }
    )

    return {
      formData
    }
  }
})
</script>

<style scoped lang="less">
.hy-form {
  padding-top: 22px;
}
</style>

使用modelValue进行接收,将接收的modelValue拷贝给formData,并监听formData的数据是否改变,改变了就将新数据emit(‘update:modelValue’, 新数据)更新数据

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3中父子组件实现数据双向绑定效果 的相关文章

  • Vuetify:v-ripple 只能用于块级元素

    我今天刚开始收到此错误 它破坏了我的整个网站 因为我像个傻瓜一样在页面加载时加载 Vuetify 有谁知道这意味着什么或如何解决它 谷歌搜索没有发现任何有用的信息 Edit 对于因网站也损坏而发现此问题的任何人 这可能是因为您加载的位置vu
  • vuejs中如何获取组件编译后的html内容

    我有一个这样的组件
  • Vue.JS 可以与 AJAX http 调用一起使用吗?

    我正在尝试从 HTML 中执行以下操作 var vm new Vue el loginContent data main message Login isLoggedIn false loginError loginButton Login
  • 使用 Vercel 进行 Vue.js 历史记录模式的服务器配置?

    我设置了一个非常基本的 Vue js 应用程序 主要使用这些步骤 https auth0 com docs quickstart spa vuejs 01 login 当我将路由器添加到该项目时 它询问我是否要使用历史模式 我说是 现在我正
  • 是否可以限制用户登录 Firebase 应用的设备数量?

    语境 我正在帮助使用 Vue 更新 Cordova 应用程序 以从基于订阅的收入 用户必须付费才能访问该应用程序 转变为基于广告的收入 用户可以免费注册 但将拥有他们在使用应用程序时显示的广告 我们想要做的一部分是限制用户可以拥有帐户的设备
  • 如何在 vue 模板中使用 `console.log` 或 `console.error`?

    我有一个 vue 组件
  • 如何隔离 Vuetify 全局样式

    我已经开始在旧的现有项目中将 Vue js 与 Vuetify 结合使用 所以我没有重写所有前端 我只是导入了Vue并替换了一些部分 然后我注意到一个非常意想不到的行为 Vuetify 具有常见类的全局样式 例如 title它不仅影响整个页
  • VueJS - 验证表单文件上传中的文件大小要求

    我正在使用 Bootstrap Vue 表单制作一个简单的表单 用户可以在其中上传文件 有没有办法验证使用 Vue 表单选择的文件的大小 我想阻止用户上传此类文件 我见过this https stackoverflow com questi
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • node.js、vue.js 和express.js 堆栈开发

    我正在尝试使用 Linux 上的 Visual Studio Code IDE 使用 vue js express js 和 node js 创建一个 Web 应用程序 根据网上的一些文档 我读到安装 vue js 后 可以创建一个vue
  • Web 扩展中共享 vuex 状态(死对象问题)

    我正在尝试在网络扩展中使用共享的 vue js 状态 状态存储在后台脚本的 DOM 中并呈现在弹出页面中 第一次尝试 我的第一次尝试是使用一个没有 vuex 的简单商店 背景 js var store count 0 popup js br
  • Asyncdata 与 Fetch 之间的区别

    获取数据和异步数据之间的确切区别是什么 官方文档是这么说的 异步数据 您可能想要获取数据并在服务器端呈现它 Nuxt js 添加 asyncData 方法 让您可以在之前处理异步操作 设置元件数据 异步数据每次在加载组件之前调用 仅适用于
  • 如何在Vue中获取输入字段值

    我是 Vue 新手 我需要一些帮助来从输入字段获取值 在我的表格中 我有
  • 在新窗口中打开 VueJS 组件

    我有一个只有一页的基本 VueJS 应用程序 它不是 SPA 而且我不使用 vue router 我想实现一个按钮 单击该按钮时会使用我的 Vue 组件之一的内容执行 window open 函数 查看来自的文档window open ht
  • 如何将 Jitsi Meet 添加到 Vuejs

    我已在 public html 的正文中加载了 jitsi meet 脚本 并且我有一个组件 如下所示
  • Vuetify 自动完成类似项目未显示

    我的本地案例中有类似标题的自定义帖子API我尝试通过搜索查询显示帖子items array Data count 5 entries id 3 title Senior developer Python id 4 title Senior
  • 个人Vue 3组件包缺少模板或渲染函数

    我最近将自己的 Vue 3 组件上传到 NPM 以供其他人使用 当在其他项目中使用它时 它会发出以下警告 Vue warn Component is missing template or render function at
  • Vue 监听 Vuex 提交吗?

    有没有一种方法可以监听 Vuex 提交 而不观察任何随提交而更改的属性 只是简单地找出是否发生了提交 我有一个 Filter 组件 想将其放入 NPM 包中 但我已经有一个用例 在该用例中 我希望设置一个 cookie 在选择过滤器时存储过
  • 用变量字符串设置槽的简单方法?

    有许多slot例子 但没有克莱尔和简单 因为我需要 我需要类似的东西 var x Hello slot x 这就是我需要的 在一个具体的例子中 https jsfiddle net 2qdh3x3v https jsfiddle net 2
  • Vue 3 Composition API 提供/注入在单文件组件中不起作用

    我正在使用 Composition API 在 VueJS 3 中创建一个库 我实现了提供 注入 如中所述docs https v3 vuejs org guide composition api provide inject html i

随机推荐

  • MySQL学习(六)——SQL的语言规范

    1 SQL的两个重要标准 SQL92 和SQL99 2 SQL分类 数据定义语言 DDL Data Definition Languages 对数据库结构的操作 定义了不同的数据库 表 视图 索引等数据库对象 还可以用来增删改数据库和数据表
  • 微信小程序热门搜索功能实现

    微信小程序点击搜索按钮 弹出遮罩层 显示热门搜索和搜索功能界面 搜索框 遮罩 图层 input 热门搜索 页面元素自动换行 效果 点击搜索框 弹出第二个视图层 显示input搜索框 并自动弹出键盘 代码
  • js几种生成随机颜色方法

  • 栈抽象数据类型及Python实现

    目录 栈的实现 栈的应用 十进制转化为二进制 中缀转后缀 后缀表达式求值 栈的实现 栈Stack 一种有次序的数据项集合 在栈中 数据项的加入和移除都仅发生在同一端 一端叫栈 顶top 另一端叫栈 底base 栈的特性 反转次序 在栈中数据
  • 安卓页面布局中android:gravity与android:layout_gravity的区别

    android gravity 指的是在控件内的元素要排布的方向 android layout gravity 指的是该控件相对于父控件的显示位置 当这俩个属性取多个值时可以使用 来分隔 且在LinearLayout布局中 使用androi
  • 手把手教你用matlab做深度学习(二)- --CNN

    在上一篇博客中 讲解了怎么用matlab搭建CNN网络模型 并给出了训练过程与结果 但是结果不是很满意 大概训练精度在80 左右 现在给出改进方案 1 首先 我们可以把CNN滤波输出数改大点 从原来的32改为numFilters 128 完
  • 在线图片尺寸修改 生成图标

    https www sojson com image change html https www idc yun com index php icon make 工具机 https www idc yun com index php uti
  • python输出希腊字母

    24个希腊字母 一 希腊字母及读音 二 Python输出 三 发现问题 一 希腊字母及读音 大写 小写 英文读音 中文读音 Alpha 阿尔法 Beta 贝塔 Gamma 伽马 Delta 德尔塔 Epsilon 艾普西隆 Zeta 泽塔
  • R数据分析:方法与案例详解--自学笔记

    TOC 目录 第二章 数据结构与基本运算 2 1 数据类型 数值型 numeric 整数 小数 科学数 字符型 character 夹杂单引号或者双引号之间 MR 逻辑型 只能读取T TRUE 或 F FALSE 值 复数型 a bi 原始
  • Java框架简介

    一 框架介绍 1 SpringBoot SpringBoot是Spring家族中一个全新框架 用来简化Spring应用程序的创建和开发过程 特性 1 一个快速开发框架 能够快速创建基于Spring的应用程序 2 能够直接使用java mai
  • Jenkins管理Docker容器

    一 Docker镜像容器手动更新流程 1 Docker安装 curl o etc yum repos d epel repo http mirrors aliyun com repo epel 7 repo curl o etc yum r
  • ajax的添加,在ajax中添加更多参数

    我正在使用AJAX功能 我使用AJAX将3个变量传递到下一页 当我添加第4个变量时 函数不会被调用 Code Browser Support Code function ajaxFunction var ajaxRequest The va
  • 超大规模数据库集群保稳系列之一:高可用系统

    基于过去多年在大规模数据集群保稳方面的实践经验 我们希望能够跟业界进行一些技术交流 美团技术团队举办了第75期技术沙龙 我们邀请到了美团研究员赵应钢担任出品人 同时请邀请到张洪 王占全 蔺瑞超 沈裕锋等4位数据库方向的4位技术专家 围绕进攻
  • C++虚拟机制的压制

    C 中 如果一个类有虚拟函数的时候 当使用该类的指针调用其虚函数的时候 代码会被编译器转换为使用虚函数表中保存的函数地址找到函数后二次调用 即 class A public virtual void Out this gt Inner vi
  • ue4绘制线的三种方式

    第一种方式 是用样条线 简明扼要 但是打包后就消失了 AActor actor world gt SpawnActor lt AActor gt ActorClass actor gt AttachToActor this FAttachm
  • 步进及伺服调试中常见问题

    步进及伺服调试中常见问题 步进 伺服 步进 1 步进电机驱动器可以接收两种脉冲信号 一种单脉冲方式 一种是双脉冲方式 可通过驱动器拨码开关设置进行选择 试分别画出两种方式的信号图 单脉冲方式脉冲信号从脉冲端 PUL 输入 通过方向端 DIR
  • java实现域名解析

    java实现域名解析 域名解析过程 浏览器检查是否有该域名缓存 检查本机host文件之内是否有该域名对应ip 检查本机DNS缓存 递归或迭代向DNS根域名服务器获取该域名ip地址 1 windows控制台 win r 输入cmd进入控制台
  • C语言常见校验(加密)操作——异或

    在通讯传输数据过程中 往往要加校验码 今天写了个简单的异或以及解异或的操作代码 include
  • arcsde安装步骤_ArcGIS 9.3 安装之 SDE的安装及使用

    由于ArcSDE9 3只支持Oracle 11gR1 32位版本 所以要在安装ArcSDE的电脑上安装一个32位版本的Oracle 11gR1客户端 1 安装SDE程序 并进行注册 1 选择注册机KeyGen exe 点击server标签
  • Vue3中父子组件实现数据双向绑定效果

    父组件