Vue2踩坑记录 - el-input无法接收键盘输入,对响应式对象的深入理解-对象和数组的响应式

news2024/12/24 3:16:15

今天发现,某对话框打开后,其中的input无法接收键盘输入,我在页面上劈里啪啦敲了一堆,页面输入框空空如也,的确是用了v-model来实现双向绑定。但是显然,它没有实现双向数据传输。那么,双向数据传输除了使用v-model之外,还有其他的条件么?

查看vue2官网深入响应式原理章节深入响应式原理 — Vue.js,其中有这么一段:

我这个正好是一个form表单中的控件,绑定的是一个对象中的属性:form.projectName

<el-input v-model="form.projectName" placeholder="请输入项目标题"/><br>
<input type="text" v-model="form.projectName"/>

对象 

 于是,继续向下看:

 回去仔细看了我的代码:

data中确实在form中定义了projectName, 按道理应该没问题;

但是,我写了个reset函数,其中重新定义了一个form对象,覆盖了data中的form

reset(){
      this.form = {          
      }
}

 这就导致在执行了reset之后,这个属性从响应式变成了非响应式。

根据官网的说法,有两种修正方式

1、使用对form中对象属性赋值为null的方法来重置,而不是重新定义form对象

this.form.projectName = null;

 2、使用官网中推荐的为对象添加属性的方式

this.$set(this.form,'projectName',null);

数组

同理,Vue 不能检测以下数组的变动:

  1. 当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
  2. 当你修改数组的长度时,例如:vm.items.length = newLength

当通过以上方式来修改数组项的数据或数组长度时,页面上与该数据项或数组长度绑定的控件无法正确更新。

例如,我曾经遇到的问题是:table中的某一列是通过一个数组对象拼接成的逗号分隔的字符串,当我通过交互控件,从页面上修改了这一列的数据时,通过console可以看到data中的数据更新了,但是页面上table中的内容没更新,也就是说,vue未能监测到Model中这个数据项的变化,因而没有通知View进行更新。

对于问题1,可以使用以下两种方式解决(我习惯用1,跟对象一样的形式,好记):

Vue.$set(vm.items, indexOfItem, newValue) / vm.$set(vm.items, indexOfItem, newValue)

vm.items.splice(indexOfItem, 1, newValue)

对于问题2:

vm.items.splice(newLength)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2125593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JMeter在Mac下的安装使用

目录 Mac OS Jmeter安装运行1、Jmeter下载2、运行Jmeter3、编写或导入脚本 前言 开发过程中需要对系统进行性能测试&#xff0c;可以选用jemter对接口进行压测&#xff0c;jemter优点如下&#xff1a; 开源许可证&#xff1a;Jmeter完全免费&#xff0c;允许开发者使用源代码…

SM7015非隔离电磁炉/电饭煲电源芯片12V/18V输出

SM7015特点&#xff1a; 拓扑结构支持&#xff1a;低成本 BUCK、BUCK-BOOST 等方案 采用 730V 单芯片集成工艺 85Vac~265Vac 宽电压输入 待机功耗小于 120mW220Vac 集成高压启动电路 集成高压功率开关 60KHz 固定开关频率 内置抖频技术&#xff0c;提升 EMC 性能 电流模式 PWM…

使用designer.exe实现设计ui界面(以及解决遇到的问题)

引言: 若自己构想一个简洁的页面,有个布局的草图,且使用python实现,似乎是可行的,但是若对于比较复杂的界面,且不说每个模块在布局中所在的位置,再说每个模块所对应的功能以及程序的实现,都会是十分繁杂的任务。所以此时就需要寻找更加直观的设计方法。 其实python中的…

指针之旅(5)—— 万能指针与回调函数的搭配:万能排序qsort函数的使用规则及其模拟实现。

目录 1. 回顾&#xff1a;万能指针void* 与 回调函数 的特性 1.1 万能指针void* 1.2 回调函数 2. qsort函数的使用规则 2.1 qsort的头文件和排序方向 2.2 qsort的函数参数表解析 2.3 结构体数组排序举例 3. 冒泡排序模拟万能排序qsort的实现 3.1 冒泡排序的回顾与疑问…

前端自定义下载文件名

data数据格式如下 "data": [{"createBy": "system","createTime": "2024-09-11 14:08:56","updateBy": "","updateTime": null,"beginTime": null,"endTime": null,&qu…

18068 选择排序

### 思路 1. **初始化**&#xff1a;定义变量i, j, k和临时变量tmp。 2. **外层循环**&#xff1a;遍历数组的每个元素&#xff0c;i从0到n-2。 3. **内层循环**&#xff1a;从i1到n-1&#xff0c;找到最小元素的索引k。 4. **交换**&#xff1a;将最小元素与当前元素交换。 #…

源码安装python3.10.8后pip3无法使用问题

一、背景&#xff1a; CentOS7.7上默认已经存在python2.7&#xff0c;但需要python3&#xff0c;所以计划源码安装python3。 下载python3.10.8 wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz 二、编译安装 安装用户为普通linux用户&#xff0c;拥有sudo权…

实战案例(2)防火墙+二交换机VLAN组网

案例二&#xff1a;防火墙充当三层交换机与路由器角色功能进行组网 拿到这样的拓扑后&#xff0c;首先要了解好客户的需求&#xff0c;然后根据需求进行划分 比如客户那边有监控跟办公网络&#xff0c;可以通过VLAN划分不同的区域&#xff0c;然后二层交换机对接终端的口划入到…

C++中的I/O流

本节主要看代码理解 I/O流继承关系 iostream 主要类 cin cout cerr clog while&#xff08;cin>>str&#xff09; &#xff5b; //处理 &#xff5d; 当接收ctrl z 或 ctrl c时&#xff0c;会停止&#xff0c; 原理&#xff1a;重载操作符bool&#xff0c;令指定istr…

python学习——对无人机影像有RGB转换到HSV

问题描述 最近需要对无人机影像中绿色植被信息进行提取&#xff0c;查看相关论文&#xff0c;发现用的比较多的就是HSV色彩转换方法&#xff0c;动手实践一下。 解决思路 #mermaid-svg-5ejGodIusPv6zFVS {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…

移植案例与原理 - startup子系统之syspara_lite系统属性部件

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 startup子系统之syspara_lite系统属性部件 &#xff08;1&#xff09; startup子系统之syspara_lite系统属性部件 &#xff08;2&#xff09; startup子系…

【C++ Primer Plus习题】14.5

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> using namespace std; #includ…

Xinstall地推解决方案:精准追踪,提升App推广效果!

在移动互联网时代&#xff0c;App的推广和运营成为了开发者们面临的一大挑战。尤其是地推活动&#xff0c;作为App推广的重要手段&#xff0c;其效果直接关系到产品的用户增长和活跃度。然而&#xff0c;传统的地推方式存在着诸多痛点&#xff0c;如业绩统计繁琐、推广效果难以…

Excel怎么去除公式保留数字,一个快捷键也能搞定

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f4ca;在处理Excel数据时&#xff0c;我们经常会遇到需要从公式单元格中提取数值的情况。例如&#xff0c;你可能有一个包含公式的列&#xff0c;但只需要那些公式计算后的数字。今天&#xff0c;我们就来学习几种在…

无线领夹麦克风哪款好,无线麦克风品牌排行榜前十名,智商税详谈

​无线领夹麦克风如今是视频创作者、直播博主等群体常用的音频设备&#xff0c;但由于品牌和型号众多&#xff0c;消费者在购买时常常不知如何选择。从市场情况来看&#xff0c;某些品牌在销量上占据优势&#xff0c;但在口碑方面&#xff0c;一些专注品质的小众品牌可能更胜一…

《DB-GPT项目》专栏总目录

❤️ 专栏名称&#xff1a;《DB-GPT项目》 &#x1f339; 内容介绍&#xff1a;项目部署、大模型替换、底层源码修改、数据分析、数据可视化、自动化等&#xff0c;适合零基础和进阶的同学。 &#x1f680; 订阅专栏&#xff1a;订阅后可阅读专栏内所有内容&#xff0c;专栏持续…

配电房数字式仪表读数识别算法开发

文章目录 一、概述二、训练数据准备2.1 自动生成图片2.2 爬虫搜集图片 三、模型训练及测试3.1 数据集组成3.2 模型训练及评价3.3 预测结果可视化 四、小结 一、概述 数字式仪表是指以数字的形式呈现仪表读数的仪表类型&#xff0c;其特点是读数比较直观&#xff0c;如下图为配…

react 安装使用 antd+国际化+定制化主题+样式兼容

安装antd 现在从 yarn 或 npm 或 pnpm 安装并引入 antd。 yarn add antd修改 src/App.js&#xff0c;引入 antd 的按钮组件。 import React from react; import { Button } from antd;const App: React.FC () > (<div className"App"><Button type&q…

【鸿蒙】HarmonyOS NEXT星河入门到实战5-基础语法

目录 一、字符串拼接 1.1 常规字符串拼接 1.2 模板字符串hello(符号在键盘的tab上面) 二、类型转换 &#xff08;数字和字符串&#xff09; 2.1 字符串转数字 2.2 数字转字符串 三、交互 3.1 点击事件 3.2 状态管理 3.3 计数器案例 四、运算符 4.1 算数运算符 4.2 赋…

[001-03-007].第26节:分布式锁迭代3->优化基于setnx命令实现的分布式锁-防锁的误删

我的博客大纲 我的后端学习大纲 1、问题分析&#xff1a; 1.1.问题&#xff1a; 1.锁的超时释放&#xff0c;可能会释放其他服务器的锁 1.2.场景&#xff1a; 1.如果业务逻辑的执行时间是7s。执行流程如下 1.index1业务逻辑没执行完&#xff0c;3秒后锁被自动释放。2.index…