前端开发中的常见优化

news2024/12/28 4:56:08

目录

外观

兼容

不同尺寸(包裹,height:100%)

不同 浏览器 隐藏滚动条 的 不同属性名

重排->重绘

不显示 display:none->禁用disable 

性能

导航重复(修改原型push、replace方法)

搜索防抖 import { debounce } from 'lodash'

严谨性

少用any类型

路由参数query和params


外观

兼容

不同尺寸(包裹,height:100%)

 

.workbench-create {
  height: 100%;
  display: flex;
}

不同 浏览器 隐藏滚动条 的 不同属性名

.left-wrap {
    height: 100%;
    overflow: auto;
    flex: 1;
    padding-left: 40px;
    //隐藏元素的滚动条。这通常用于自定义滚动条样式。
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;

    /* IE 10+ */
    &::-webkit-scrollbar {
    //伪元素选择器,用于选择Webkit浏览器(如Chrome、Safari等)中的滚动条。
      display: none;
      /* Chrome Safari */
    }

重排->重绘

不显示 display:none->禁用disable 

性能

导航重复(修改原型push、replace方法)

push:将新的路由添加到浏览器的历史记录中,这样用户就可以通过浏览器的后退按钮回到之前的路由。

this.$router.push('/about')

replace:不会在浏览器的历史记录中留下新的条目,而是直接替换当前的历史记录条目。

this.$router.replace('/contact')

比如在处理登录页面时,登录成功后可能会用replace方法替换当前路由,以防止用户通过后退按钮回到登录页面。

修改 VueRouter 的原型方法 pushreplace,用来捕获导航重复错误并进行处理,

不会在控制台中抛出错误,从而避免了不必要的错误提示和潜在的问题。

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => {
    if (err.name !== 'NavigationDuplicated') {
      throw err;
    }
  });
};

const originalReplace = VueRouter.prototype.replace;
VueRouter.prototype.replace = function replace(location) {
  return originalReplace.call(this, location).catch(err => {
    if (err.name !== 'NavigationDuplicated') {
      throw err;
    }
  });
};

const router = new VueRouter({
  // 路由配置...
});

export default router;

搜索防抖 import { debounce } from 'lodash'

    <mds-select
              style="width: 480px"
              v-model="formData.applyOa"
              :multiple="true"
              placeholder="选择或搜索OA"
              filterable
              :remote="true"
              :remote-method="searchOA"
              :disabled="showDetail"
              clearable
              @change="changeOA"
            >
              <mds-option
                class="select-oaAndDept"
                v-for="item in OAoptions"
                :key="item.oa"
                :value="item.empOa"
                :label="item.empNmAndOa"
              >
                <div class="select-name">
                  {{ item.empNmAndOa }}
                  <div class="select-dept">{{ item.deptNm }}</div>
                </div>
              </mds-option>
            </mds-select>
import { debounce } from 'lodash'

//防抖
// OA list
  OAoptions: any = []
  searchOA = debounce(this.searchOaAPi, 500)
  searchOaAPi(val: any) {
    bspUserInfoFuzzyQueryOaList({
      empOaOrNm: val,
      partitionDt: ''
    }).then((res: any) => {
      if (res && res.code == 200) {
        this.OAoptions = res.data
      } else {
        this.$message.error(res.msg || '系统错误')
      }
    }).catch((e: any) => {
      this.$message.error(e.msg)
    })
  }

严谨性

少用any类型

路由参数query和params

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

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

相关文章

【Docker】Docker私有仓库管理

目录 一 、Harbor 简介1.1 什么是Harbor1.2Harbor的特性1.3Harbor的构成 二、Harbor部署2.1 部署 Docker-Compose 服务2.2 部署 Harbor 服务2.3启动Harbor2.4 创建一个新项目2.5 在其他客户端上传镜像 三、配置Harbor 高可用四、维护管理Harbor4.1. 通过 Harbor Web 创建项目4.…

提升Web3安全性和用户体验:元事务和加密技术的应用

在Web3中&#xff0c;去中心化应用程序&#xff08;DApps&#xff09;是一种基于区块链技术的应用程序&#xff0c;它们通过智能合约实现透明、安全、去中心化的业务逻辑。然而&#xff0c;DApps的使用门槛比传统的中心化应用程序更高&#xff0c;需要用户具备一定的技术知识&a…

python简单入门

python简单入门 文章目录 python简单入门[toc] 地址链接1. 官网2. 下载地址3. 官方文档 1. 第一章1.1 python解释器1.2 基础语法1.2.1 常见数据类型1.2.2 强制类型转换1.2.3 注释1.2.4 运算符1.2.5 字符串1.2.5.1 字符串的定义1.2.5.2 字符串拼接1.2.5.3 格式化字符串1.2.5.3 精…

profinet 调试记录

一、 树莓派运行codesys runtime Codesys control for Raspberry Pi (外网) 链接&#xff1a;https://pan.baidu.com/s/1vgURlEG_y4C5rj7rALdOdQ?pwdfkhr 提取码&#xff1a;fkhr 1. 用户名称要以 root 登录 若是普通用户&#xff0c;会提示&#xff1a;脚本必须以 root 身…

Facebook Messenger市场营销,跨境电商不可忽略的营销手段

营销始于广告。广告仍然是不可或缺的&#xff0c;但广告的方式正在发生变化。以前商家会使用广告邮件或者直接转到网站上的产品页面&#xff0c;但是这两种方法都存在很大问题。虽然企业可以通过电子邮件与潜在客户保持联系&#xff0c;但不能保证这些潜在客户会真正看广告邮件…

【算法与数据结构】104、111、LeetCode二叉树的最大/最小深度

文章目录 一、题目二、层序遍历法三、递归法四、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、层序遍历法 思路分析&#xff1a;两道题都可以用层序遍历&#xff08;迭代法&#xff09;来做&#xff0c;遍历完…

通付盾获苏州市工业互联网产业联盟“工业互联网看苏州”先锋企业

近日&#xff0c;苏州市工业互联网产业联盟公布2022年度苏州市工业互联网产业联盟系列评选获评名单&#xff0c;通付盾荣获“工业互联网看苏州”先锋企业。 为加快推动工业互联网在数字赋能产业创新集群融合发展中发挥更显著作用&#xff0c;进一步完善苏州市工业互联网产业生态…

Docker Compose 容器编排 + Docker--harbor私有仓库部署与管理

目录 一、Docker Compose简介 1、Docker Compose 的YAML 文件格式及编写注意事项 2、Docker compose 使用的三个步骤 3、 Docker Compose配置常用字段 4、 Docker Compose 常用命令 5、 Docker Compose 文件结构 二&#xff1a; Docker Compose 安装 1、Docker Compose…

【C#】并行编程实战:基于任务的异步编程基础(下)

第八章介绍了 C# 中可用异步编程的实践和解决方案&#xff0c;还讨论了何时适合使用异步编程等。本章主要介绍 async 和 await 关键字。 其实在之前的学习中&#xff0c;大家都已经了解过这两个关键字了&#xff0c;用得非常多。其实我觉得没有必要再赘述了&#xff0c;不过这里…

Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Centos安装postgresql数据库以及postgis扩展的安装

这几天项目上的数据库迁移差点没把我弄死 &#xff0c;因为项目上的使用的是postgis来处理地理数据 &#xff0c;而开发环境的数据库以及postgis扩展并不是我安装的。所以在迁移的时候造成了不小的麻烦。记录一下迁移过程中遇到的。下面以Centos操作系统为例 文章目录 卸载post…

微信小程序——实现手机振动效果

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

解决行业反复“造轮子”现象,全新地平线RDK系列机器人开发者套件上线

7月25日&#xff0c;“地平线2023机器人开发者创享日”在深圳举办&#xff0c;地平线RDK系列机器人开发者套件正式上线&#xff0c;机器人操作系统TogetheROS.Bot™2.0版发布&#xff0c;应用中心NodeHub首发亮相&#xff0c;地平线开发者社区改版上线。 地平线2023机器人开发者…

go性能分析工具之trace

参考文章&#xff1a; https://eddycjy.gitbook.io/golang/di-9-ke-gong-ju/go-tool-trace https://mp.weixin.qq.com/s__bizMzUxMDQxMDMyNg&mid2247484297&idx1&sn7a01fa4f454189fc3ccdb32a6e0d6897&scene21#wechat_redirect 你有没有考虑过&#xff0c;你的g…

HTTP1、 HTTP2、HTTP3 区别

HTTP1、 HTTP2、HTTP3 区别 HTTP1HTTP/1.0和HTTP/1.1的区别HTTP1的缺陷 HTTP2SPDY协议HTTP/2 新特性&#xff08;即HTTP/2.0和HTTP/1.x的区别&#xff09;HTTP/2 的缺点 HTTP3QUIC协议HTTP/3 新特性&#xff08;HTTP/3与HTTP/2、HTTP/1的区别&#xff09;基于QUIC的0RTT是如何实…

【Linux后端服务器开发】HTTP协议

目录 一、HTTP协议概述 二、HTTP应用层服务器实现 Util.hpp Protocal.hpp Http_Server.hpp http_server.cc indext.html 一、HTTP协议概述 请求和响应怎么保证应用层完整读取完毕了&#xff1f; 读取完整的一行&#xff08;识别行分隔符&#xff09;&#xff0c;while&…

MobPush Android SDK 厂商推送限制

概述 厂商推送限制 每个厂商通道都有对应的厂商配额和 QPS 限制&#xff0c;当请求超过限制且已配置厂商回执时&#xff0c;MobPush会采取以下措施&#xff1a; 当开发者推送请求超过厂商配额时&#xff0c;MobPush将通过自有通道进行消息下发。当开发者推送请求超过厂商 QP…

elementui el-table 封装表格

ps: 1.3版本 案例&#xff1a; 完整代码&#xff1a; 可直接复制粘贴&#xff0c;但一定要全看完&#xff01; v-slot"scopeRows" 是vue3的写法&#xff1b; vue2是 slot-scope"scope" <template><!-- 简单表格、多层表头、页码、没有合并列行…

2023年度盘点:网络电视盒子哪个好?目前性能最好的电视盒子

挑选电视盒子时配置性能是最重要的&#xff0c;芯片、运存、存储全部会影响到我们的观影体验&#xff0c;想播放流畅、响应速度快&#xff0c;要在预算范围内选择配置最高的产品&#xff0c;那么哪些电视盒子称得上是目前性能最好的电视盒子呢&#xff1f;不懂网络电视盒子哪个…

自定义view - 玩转字体变色

自定义View步骤&#xff1a; 1>&#xff1a;values__attrs.xml&#xff0c;定义自定义属性&#xff1b; 2>&#xff1a;在第三个构造方法中获取自定义属性&#xff1b; 3>&#xff1a;onMeasure【不是必须的】&#xff1b; 4>&#xff1a;onDraw&#xff1a;绘制代…