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

阿里云的网站建设好不好/百度搜索高级搜索技巧

阿里云的网站建设好不好,百度搜索高级搜索技巧,我的电脑做网站服务器,怎么制作公众号封面图目录 前言 在开发过程中,我们经常遇到一些看似简单的问题,但有时正是这些细节问题让我们头疼不已。今天,我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑,希望大家在使用时能够避免。 一. 问题背景 二. 问题分…

目录

前言
在开发过程中,我们经常遇到一些看似简单的问题,但有时正是这些细节问题让我们头疼不已。今天,我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑,希望大家在使用时能够避免。
一. 问题背景
二. 问题分析
三. 问题重现
1. 问题表现
2. 解决过程
解决方案 1:使用数字类型的 active-value 和 inactive-value
解决方案 2:强制转换 isStruct 字段为数字
3 问题总结
4. 最后的思考

前言

在开发过程中,我们经常遇到一些看似简单的问题,但有时正是这些细节问题让我们头疼不已。今天,我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑,希望大家在使用时能够避免。

一. 问题背景

在某个 Vue 项目中,我需要使用 el-switch 组件来表示一个 isStruct 字段的开关状态。原本的需求是:当 isStruct 的值为 1 时,表示开启状态;当 isStruct0 时,表示关闭状态。然而,在实现过程中,虽然在后端接口中 isStruct 返回的是数字类型(10),但在前端界面中,开关的状态显示异常——不但切换状态不准确,而且最终的 isStruct 字段也变成了字符串 "0""1",而不是期望的数字。

这个问题导致了前端显示的状态与实际数据不一致,严重影响了用户体验,且在调试过程中,问题并不明显,直到打印数据才发现数据类型发生了变化。


二. 问题分析

首先,我们需要明确 el-switch 的工作原理。在 Vue 中,v-model 是用来实现双向数据绑定的。当我们使用 el-switch 组件时,它会根据 active-valueinactive-value 的值来决定切换的状态。v-model 会绑定到指定的字段(在此例中为 scope.row.isStruct),并在切换时修改其值。

问题的根本原因在于 el-switch 组件的 active-valueinactive-value 属性的类型处理。如果你设置了 active-value="1"inactive-value="0",这两个值是写死的,而且默认是字符串类型,那么 v-model 绑定的 isStruct 就会变成字符串 "1""0",而不是数字 10 这时,也会导致获取的 isStruct 数据类型发生变化,而我们期待的是一个数字类型的值,这就导致了数据不一致和展示错误。


三. 问题重现

让我们看看原始代码和最终出现的问题:

<el-table-column min-width="12%" label="是否开启视频结构化"><template slot-scope="scope"><!-- 设置了 active-value 和 inactive-value 为字符串 --><el-switch v-model="scope.row.isStruct" active-value="1" inactive-value="0"active-color="#13ce66" inactive-color="#ff4949"></el-switch></template>
</el-table-column>

在这个代码中,我们通过 v-model="scope.row.isStruct" 双向绑定了 isStruct 字段,而 active-value="1"inactive-value="0" 被设置为字符串类型。虽然我们希望 10 表示数字,但在实际执行时,它们会被 Vue 内部转换为字符串,从而导致了开关的状态无法正确显示。

1. 问题表现

  • scope.row.isStruct 的值为数字 1 时,开关并没有显示为开启状态;
  • scope.row.isStruct 的值为数字 0 时,开关没有正确显示为关闭状态;
  • 通过 v-model 绑定的 scope.row.isStruct 的值也被自动转换成了字符串 "1""0"

2. 解决过程

解决方案 1:使用数字类型的 active-valueinactive-value

解决问题的第一步,就是确保 el-switch 组件的 active-valueinactive-value 的值是数字类型,而不是字符串。我们可以将 active-value="1"inactive-value="0" 改成数字类型:

<el-table-column min-width="12%" label="是否开启视频结构化"><template slot-scope="scope"><!-- 使用数字类型的 active-value 和 inactive-value --><el-switch v-model="scope.row.isStruct" :active-value="1" :inactive-value="0"active-color="#13ce66" inactive-color="#ff4949"></el-switch></template>
</el-table-column>

通过这种方式,el-switch 会根据数字 10 来设置开关状态,确保 v-model 绑定的数据始终是数字类型,从而避免了字符串转换的问题。

解决方案 2:强制转换 isStruct 字段为数字

尽管我们修改了 el-switchactive-valueinactive-value,但为了保证数据一致性,最好在接收到后端数据时,强制将 isStruct 字段转换为数字类型。这样可以避免在其他地方出现字符串 "1""0" 的问题。

const data = res.rows.map(item => ({...item,isStruct: Number(item.isStruct)  // 强制转换为数字
}));
this.tableData = data;

这样处理之后,我们就确保了无论后端返回的数据是字符串 "1""0",都能够转换为数字类型 10,保持一致性。

3 问题总结

  1. 问题原因: el-switch 组件的 active-valueinactive-value 默认是字符串类型,因此在绑定 v-model 时,数据类型发生了不期望的转换,导致获取初始数据 isStruct 的值变成了字符串 "0""1",而不是数字。刚开始还以为是后端问题,记录,避免入坑。

  2. 解决方案:

    • 第一步: 使用动态的数字类型的 :active-value 和 :inactive-value,避免字符串类型的自动转换。
    • 第二步: 在接收到后端数据后,强制将 isStruct 字段转换为数字类型,确保数据一致性。
  3. 最佳实践: 在处理 Vue 组件的 v-model 双向绑定时,要特别注意数据类型的一致性。尤其是在涉及到开关、选择框等组件时,active-valueinactive-value 的数据类型应该与 v-model 绑定的数据类型一致。

4. 最后的思考

虽然这个问题看似简单,但它提醒我们在前端开发中,很多细节都需要细心处理。数据类型的不一致往往会导致许多意想不到的错误,因此在绑定数据时,我们要时刻保持警觉,确保数据的一致性和类型的正确性。希望这篇博客能帮助你避开类似的坑,提升开发效率。

相关文章:

Vue 90 ,Element 13 ,Vue + Element UI 中 el-switch 使用小细节解析,避免入坑(获取后端的数据类型自动转变)

目录 前言 在开发过程中&#xff0c;我们经常遇到一些看似简单的问题&#xff0c;但有时正是这些细节问题让我们头疼不已。今天&#xff0c;我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑&#xff0c;希望大家在使用时能够避免。 一. 问题背景 二. 问题分…...

echarts的双X轴,父级居中的相关配置

前言&#xff1a;折腾了一个星期&#xff0c;在最后一天中午&#xff0c;都快要放弃了&#xff0c;后来坚持下来&#xff0c;才有下面结果。 这个效果就相当是复合表头&#xff0c;第一行是子级&#xff0c;第二行是父级。 子级是奇数个时&#xff0c;父级label居中很简单&…...

RuoYi-Vue部署到Linux服务器(Jar+Nginx)

一、本地环境准备 源码下载、本地Jdk及Node.js环境安装,参考以下文章。 附:RuoYi-Vue下载与运行 二、服务器环境准备 1.安装Jdk 附:JDK8下载安装与配置环境变量(linux) 2.安装MySQL 附:MySQL8免安装版下载安装与配置(linux) 3.安装Redis 附:Redis下载安装与配置(…...

Linux firewalld常用命令

启动防火墙 systemctl start firewalld 停止防火墙 systemctl stop firewalld 防火墙开机自启动 systemctl enable firewalld 禁止防火墙开机自启动 systemctl disable firewalld 检查防火墙的状态 systemctl status firewalld 重新加载防火墙的配置 firewall-cmd -…...

Vue 组件之间的通信方式

Vue.js 中组件之间的通信是构建复杂应用的关键部分。以下是一些常见的Vue组件通信方式&#xff1a; 1. Props 和 Emit&#xff08;父子组件通信&#xff09; Props&#xff1a;父组件通过props向子组件传递数据。Emit&#xff1a;子组件通过emit触发事件&#xff0c;向父组件…...

el-select 修改样式

这样漂亮的页面&#xff0c;搭配的却是一个白色风格的下拉框 &#xff0c;这也过于刺眼。。。 调整后样式为&#xff1a; 灯红酒绿总有人看着眼杂&#xff0c;但将风格统一终究是上上选择。下面来处理这个问题。 分为两部分。 第一部分&#xff1a;是修改触发框的样式 第二部…...

Java项目实战II基于微信小程序的亿家旺生鲜云订单零售系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着移动互联网技术的不断…...

算法训练营day27(回溯算法03:组合总和,组合总和2,分割回文串)

第七章 回溯算法part03● 39. 组合总和 ● 40.组合总和II ● 131.分割回文串详细布置 39. 组合总和 本题是 集合里元素可以用无数次&#xff0c;那么和组合问题的差别 其实仅在于 startIndex上的控制题目链接/文章讲解&#xff1a;https://programmercarl.com/0039.%E7%BB%84%E…...

【青牛科技】D8331 流量计电路芯片,兼容 CTs,电阻分流器和罗氏线圈传感器

概述&#xff1a; D8331 系列超低功耗混合信号处理器由多种设备组成&#xff0c;具有针对电能表应用的不 同外围设备。它们集成了模拟前端和固定功能 DSP 解决方案与一个增强型 8052 单片 机核心&#xff0c;RTC 和 LCD 驱动程序集成在一个单一部件中。测量内核包括有功、无功…...

R语言森林生态系统结构、功能与稳定性分析与可视化实践高级应用

在生态学研究中&#xff0c;森林生态系统的结构、功能与稳定性是核心研究内容之一。这些方面不仅关系到森林动态变化和物种多样性&#xff0c;还直接影响森林提供的生态服务功能及其应对环境变化的能力。森林生态系统的结构主要包括物种组成、树种多样性、树木的空间分布与密度…...

【IntelliJ IDEA 中 Run Dashboard 不显示端口号问题解决办法】

IntelliJ IDEA 中 Run Dashboard 不显示端口号问题解决办法 解决 IntelliJ IDEA Run Dashboard 不显示端口号问题方法一&#xff1a;删除临时文件方法二&#xff1a;设置启动参数方法三&#xff1a;编辑 Run/Debug Configurations方法四&#xff1a;检查端口占用情况方法五&…...

idea中git的将A分支某次提交记录合并到B分支

一 实操案例 1.1 背景描述 在开发过程中&#xff0c;有时候需要将A分支某次提交记录功能合并到B分支上。主要原理用到git的cherry pick功能。 1.2 案例 实现的功能&#xff1a; master分支的11.24提交记录合并到feature_A分支&#xff1b; 1.master分支提交的记录 2.fea…...

华为关键词覆盖应用市场ASO优化覆盖技巧

在我国的消费者群体当中&#xff0c;华为的品牌形象较高&#xff0c;且产品质量过硬&#xff0c;因此用户基数也大。与此同时&#xff0c;随着影响力的增大&#xff0c;华为不断向外扩张&#xff0c;也逐渐成为了海外市场的香饽饽。作为开发者和运营者&#xff0c;我们要认识到…...

蓝桥杯第 23 场 小白入门赛

一、前言 好久没打蓝桥杯官网上的比赛了&#xff0c;回来感受一下&#xff0c;这难度区分度还是挺大的 二、题目总览 三、具体题目 3.1 1. 三体时间【算法赛】 思路 额...签到题 我的代码 // Problem: 1. 三体时间【算法赛】 // Contest: Lanqiao - 第 23 场 小白入门赛 …...

rest-assured multiPart上传中文名称文件,文件名乱码

rest-assured是一个基于java语言的REST API测试框架&#xff0c;在使用rest-assured的multipart 上传文件后&#xff0c;后端获取的文件名称乱码。截图如下&#xff1a; 原因是rest-assured multipart/form-data默认的编码格式是US-ASCII&#xff0c;需要设置为UTF-8。 Befo…...

CSFramework.EF高级应用: ASP.NETCore/WebApi使用动态代理技术创建多个IDatabase数据库实例

通过DI依赖注入IDatabase扩展接口&#xff0c;在.NET项目中使用多个数据库实例 目录 内容简介创建数据库扩展接口&#xff08;继承IDatabase接口&#xff09;注入IDatabase扩展接口 AddDatabase 扩展方法UseDatabase 扩展方法数据库配置文件 appsettings.json 配置文件Databas…...

神经网络入门实战:(九)分类问题 → 神经网络模型搭建模版和训练四步曲

(一) 神经网络模型搭建官方文档 每一层基本都有权重和偏置&#xff0c;可以仔细看官方文档。 pytorch 官网的库&#xff1a;torch.nn — PyTorch 2.5 documentation Containers库&#xff1a;用来搭建神经网络框架&#xff08;包含所有的神经网络的框架&#xff09;&#xff1b…...

Unity网络框架对比 Mirror|FishNet|NGO

在Unity中制作非单机项目常用的免费网络框架&#xff0c;这里选取了三款比较火的网络框架&#xff0c;Mirror、FishNet和Netcode for GameObject(NGO)。 比较了最常用的免费网络解决方案。可能还有值得探索的付费选项。您需要对此进行自己的研究。数据表格更新日志截止到&#…...

深入了解阿里云 OSS:强大的云存储解决方案

在现代互联网应用中&#xff0c;数据存储是一个不可忽视的环节。随着数据量的不断增长&#xff0c;传统的存储方式已经无法满足高速、低成本、大容量的需求。阿里云 OSS&#xff08;对象存储服务&#xff09;作为一种高性能、低成本且具备高度扩展性的云存储服务&#xff0c;已…...

ansible使用说明

将安装包拷贝到主控端主机 在主控端主机安装ansible&#xff0c;sh setup.sh 确认安装成功后&#xff0c;编辑hosts文件&#xff08;按步骤逐个添加主机组&#xff0c;不要一开始全部配置好&#xff09; [site-init]下的主机列表为被控制的主机&#xff08;按照当前ai建模方案…...

Qt 2D绘图之四:绘图中的其他问题

参考文章链接: Qt 2D绘图之四:绘图中的其他问题 重绘事件 前面讲到的所有绘制操作都是在重绘事件处理函数paintEvent()中完成的,是QWidget类中定义的函数。一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因中的任意一个都会发生重绘事件: repaint()函数或者…...

启动中断函数HAL_TIM_Base_Start_IT()

一、这是定时器中断&#xff1a; 前面的NVIC是我们在正常使能定时器的中断&#xff0c;后面的HAL_TIM_Base_Start_IT(&htim2)才是我们真正启动中断。 启动定时器的中断并不会立刻进入中断函数。它只是启动定时器并使能定时器的中断。中断函数&#xff08;例如 TIM2_IRQHan…...

Docker Buildx 与 CNB 多平台构建实践

一、Docker Buildx 功能介绍 docker buildx 是 Docker 提供的一个增强版构建工具&#xff0c;支持更强大的构建功能&#xff0c;特别是在构建多平台镜像和高效处理复杂 Docker 镜像方面。 1.1 主要功能 多平台构建支持 使用 docker buildx&#xff0c;可以在单台设备上构建…...

从Apache Solr 看 Velocity 模板注入

前言 学过 freemaker&#xff0c;学过 Thymeleaf 模板注入&#xff0c;但是还没有学过 Velocity 模板注入&#xff0c;然后学习一个知识最好的方法就是要找一个实际中的例子去学习&#xff0c;好巧不巧&#xff0c;前端时间还在分析 apache solr 的 cve&#xff0c;这次又搜到…...

Spring 事务和事务传播机制

Spring 事务和事务传播机制 一、Spring 事务的基本概念 事务是一组操作&#xff0c;被视为一个不可分割的工作单元&#xff0c;要么全部完成&#xff0c;要么全部失败回滚&#xff0c;以此来确保数据的一致性和完整性。Spring事务管理允许我们在应用程序中声明式地或编程式地…...

flutter 解决webview加载重定向h5页面 返回重复加载问题

long time no see. 如果觉得该方案helps&#xff0c;点个赞&#xff0c;评论打个call&#xff0c;这是我前进的动力~ 通常写法&#xff1a; 项目里用的webview_flutter 正常webview处理返回事件 if (await controller.canGoBack()) {controller.goBack(); } else {Navigator…...

STM32的寄存器是几位的?

STM32的“32”顾名思义就是32位的意思 但是STM32 的寄存器并不都是 32 位的&#xff0c;它们的位宽取决于具体的寄存器和处理器架构。STM32 是基于 ARM Cortex-M 系列内核的微控制器&#xff0c;而这些内核的寄存器通常有不同的位宽。 具体来说&#xff0c;STM32 微控制器的寄…...

基于python的汽车数据爬取数据分析与可视化

一、研究背景 基于提供的代码片段和讨论&#xff0c;我们可以得出一个与网络抓取、数据处理和数据可视化相关的研究背景&#xff0c;该背景涉及到汽车行业。以下是研究背景的陈述&#xff1a; "在迅速发展的汽车行业中&#xff0c;准确和及时的数据对各方利益相关者至关…...

使用mtools搭建MongoDB复制集和分页集群

mtools介绍 mtools是一套基于Python实现的MongoDB工具集&#xff0c;其包括MongoDB日志分析、报表生成及简易的数据库安装等功能。它由MongoDB原生的工程师单独发起并做开源维护&#xff0c;目前已经有大量的使用者。 mtools所包含的一些常用组件如下&#xff1a; mlaunch支…...

Redis(配置文件属性解析)

一、tcp-backlog深度解析 tcp-backlog是一个TCP连接的队列&#xff0c;主要用于解决高并发场景下客户端慢连接问题。配置文件中的“511”就是队列的长度&#xff0c;对联与TCP的三次握手有关&#xff0c;不同的linux内核&#xff0c;backlog队列中存放的元素&#xff08;客户端…...