首页 > 其他分享 >Vue代码一定要避开这几个错误写法

Vue代码一定要避开这几个错误写法

时间:2024-11-05 14:15:23浏览次数:5  
标签:异步 Vue 错误 DOM 写法 避开 data 属性

这里写目录标题

不适当使用v-if和v-show

v-if会在DOM中添加或移除元素,而v-show只是切换元素的CSS属性display。
要根据需求选择使用。滥用v-if可能导致性能问题,尤其是在频繁切换的情况下。

直接修改props

props是父组件传递给子组件的只读数据,直接修改会导致数据流的不一致。应该通过事件向父组件请求更新。

// 错误写法
this.propValue = newValue; // 不应该这样做

在计算属性中执行异步操作

计算属性应该是同步的,避免在计算属性中进行异步调用,这可能导致不可预测的结果。应使用方法或生命周期钩子处理异步操作。

// 错误写法
computed: {
  async data() {
    return await fetchData(); // 不推荐
  }
}

在mounted中直接访问DOM元素

Vue的DOM操作应该尽量通过模板和指令完成,直接操作DOM可能导致与Vue的响应式系统不兼容。

// 错误写法
mounted() {
  this.$el.querySelector('.element').style.color = 'red'; // 不推荐
}

在data中定义复杂对象

在data中定义复杂对象时,应该避免直接引用,因为如果不小心修改了这个对象,Vue的响应式系统可能无法检测到变化。

// 错误写法
data() {
  return {
    user: {
      name: '',
      age: 0
    }
  };
}

在模板中使用复杂逻辑

在模板中使用复杂的逻辑或条件判断会影响可读性,应该将逻辑放在计算属性或方法中。

<!-- 错误写法 -->
<div v-if="user.age > 18 && user.name !== ''">成人</div>

未处理的错误和异常

在异步操作或API请求时,应处理可能的错误,以避免应用崩溃或不必要的错误输出。

// 错误写法
async fetchData() {
  const response = await axios.get('/api/data'); // 未处理错误
}

不使用key属性

在v-for循环中,缺少key属性会导致性能问题和不必要的DOM重渲染。

<!-- 错误写法 -->
<li v-for="item in items">{{ item.name }}</li> <!-- 应该加上key -->

标签:异步,Vue,错误,DOM,写法,避开,data,属性
From: https://blog.csdn.net/2301_80346402/article/details/143488588

相关文章

  • vue前端项目部署的一点小tip
    一个典型的前后端分离项目,前端分用户入口和管理员入口,一般希望这样部署:https://mydomain.com/   普通用户入口https://mydomain.com/admin/ 管理员入口关键就是在vite.config.ts里要这么指定base:base:'./'这样build出来的文件,不管放在哪个项目下面都可以正常运行,......
  • Vue3 iOS微信JSSDK授权签名错误及图片选择兼容
    iOS微信JSSDK授权签名错误及图片选择兼容一、项目概述二、iOS签名错误invalidsignature三、iOS选择图片转载请注明出处:https://blog.csdn.net/hx7013/article/details/143502680一、项目概述Vue3+Vite+Vue-Router4+JS-SDK1.6由于之前开发调试都是在......
  • 你肯定不知道:Vue多文件上传时拖放操作的优雅处理
            多文件上传是Vue应用的常见操作。操作要求:(1)允许反复拖放多个文件到待上传区域(2)自动过滤掉重复拖放的文件(3)拖放后,形成待上传文件列表的简易缩略图(4)双击文件名,可移去某个文件。具体效果,如下图所示。        我们可将拖放操作设计为一个插件指令dragDro......
  • vue项目接入CDN域名:你可能会碰到的问题
    背景项目需要接入cdn加速域名,但只能在生产环境验证。所以发版之前本地先准备好cdn的包,然后发版的时候部署到生产环境,结果发现,点击菜单后页面的URL不对了,静态资源加载是可以的。本来页面URL是这样的:test.com/app/xpg/ind…但点击菜单后,把cdn的域名加上去了:test.com/https://c......
  • 基于SpringBoot + Vue的在线学习平台(角色:学生、教师、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......
  • 基于SpringBoot + Vue的社区智慧医疗养老系统(角色:老人、老人家属、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......
  • 基于SpringBoot+Vue的可盈保险合同管理系统设计与实现毕设(文档+源码)
            目录一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、源码获取:        大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是一款基于SpringBoot+Vue的可盈保险合同管理系统,项目源码请点击文章末尾联系我哦~目前有各类......
  • 基于SpringBoot+Vue的纺织品企业财务管理系统设计与实现毕设(文档+源码)
            目录一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、源码获取:        大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是一款基于SpringBoot+Vue的纺织品企业财务管理系统,项目源码请点击文章末尾联系我哦~目前有各......
  • (开题报告)django+vue超市销售系统管理源码+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于超市销售管理系统的研究,现有研究多侧重于传统管理模式或单一功能模块的优化。例如,一些研究主要以提升收银效率或库存管理为主[1][......
  • 基于java+SpringBoot+Vue的大学生就业招聘系统设计与实现
    项目运行环境配置:Jdk1.8+Tomcat7.0+Mysql+HBuilderX(Webstorm也行)+Eclispe(IntelliJIDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot+mybatis+Maven+mysql5.7或8.0等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个......