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

VUE开发记录

记录vue开发中遇到的问题 - 2023/10/16

问题:项目element-ui表单中,input点击需要打开弹框,弹框选择值后回填到input,但是此时elementUI的校验出错(值存在却校验为空)

解决方法
this.employeeInfo[res.type] = res.value; 改为 this.$refs.employeeInfo.validateField(res.type)

原因分析

这是一个关于Vue的响应式系统的问题。

Vue的响应式系统:Vue使用了响应式的数据绑定来实现数据和DOM之间的自动同步。当直接给一个对象添加一个新的属性时,Vue无法检测到这个改变,因为Vue在实例化时会对数据进行一次“初始化”,之后只能检测已经初始化的属性的变化。这也就是为什么使用了this.employeeInfo[res.type] = res.value,但是Vue并没有触发更新。这种情况下,需要使用this.$set来告诉Vue这个属性已经被更新了。

this.$setthis.$set 是 Vue 提供的一个全局方法,它用于在对象上添加响应式属性。它接受三个参数:对象本身,要添加的属性名,以及属性的值。当使用 this.$refs.employeeInfo.validateField(res.type) 时,Vue 将会追踪这个新的属性,并且在更新时会触发视图的重新渲染。

元素校验的问题:在的情况中,Element UI 可能依赖于 Vue 的响应式系统来进行字段校验。因为直接对对象进行属性赋值时,Vue 并不知道这个变化,所以它也无法触发 Element UI 组件的校验。但是使用了 this.$set 方法后,Vue 就能够捕捉到这个变化,并且通知相关的组件进行更新和校验。

总结,使用this.$set方法可以告诉Vue有新的属性被添加进来了

更详细的vue响应式系统参考

http://www.lryc.cn/news/195869.html

相关文章:

  • 2023年中国乳胶制品产量、需求量及市场规模分析[图]
  • 手撕Vue-数据驱动界面改变上
  • for循环中循环一次提交一次 insert update 关闭事务 spring springboot mybatis
  • VS2010 C语言内嵌汇编语言程序
  • 【TES720D】青翼科技基于复旦微的FMQL20S400全国产化ARM核心模块
  • css 左右滚轮无缝衔接
  • Hadoop分布式文件系统-HDFS
  • 专业图表绘制软件 OmniGraffle Pro mac v7.22.1中文版软件介绍
  • Git 本地文件合并和恢复
  • 记录git仓库pr没有显示贡献者的问题,以及如何提交一个pr(简)
  • 入侵检测代码
  • 数字孪生技术如何提高化工生产安全性?
  • PHP 如何查看php函数源码
  • 前端web自动化测试:selenium怎么实现关键字驱动
  • C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
  • 国际SPEC CPU创榜以来整机最高纪录!浪潮信息八路服务器TS860G7刷新权威算力基准评测性能
  • 【linux】重定向+缓冲区
  • 【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】
  • 吴恩达深度学习笔记
  • 基于SpringBoot的医疗预约服务管理系统
  • Java本地缓存的使用
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:281-300)
  • 【分享Python代码】图片转化为素描画
  • 汇川Easy521PLC与压力传感器485通讯实例
  • 创意作品管理软件 Bridge 2024 mac中文版 br2024功能特色
  • 【分享】教你加速访问GitHub,进来学!
  • 利用在线培训系统提升员工技能,助力企业发展
  • 深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器
  • c# WPF 应用程序在屏幕上居中显示
  • JVM之class文件结构剖析