前端工具方法整理

简介: 前端工具方法整理

image.png
@[toc]

0.在数组中找到匹配项

示例假设 this.connectors 的结构如下:

this.connectors = [
    {
    targetID: '123' },
    {
    targetID: '456' },
    {
    targetID: '789' }
];

如果 nodeId 是 '456',则代码:

const element = this.connectors.find(connection => connection.targetID.includes(nodeId));
console.log(element); // 输出: { targetID: '456' }

如果 nodeId 是 '999',则:

const element = this.connectors.find(connection => connection.targetID.includes(nodeId));
console.log(element); // 输出: undefined

1.在数组中找到匹配项,然后创建新对象

const modifiedRecords = ref([])
const handleBlur = (record) => {
   
    const index = modifiedRecords.value.findIndex(item => item.serialNo === record.serialNo);
      if (index !== -1) {
   
        modifiedRecords.value[index] = {
    ...record };
      } else {
   
        modifiedRecords.value.push({
    ...record });
      }
}

在 JavaScript 中,{ ...record } 是一种对象展开运算符(spread operator)的用法。它用于将一个对象的所有可枚举属性复制到一个新对象中。具体来说,{ ...record } 的作用是创建一个新的对象,该对象具有与 record 相同的属性和属性值。
这里的 { ...record } 确保了更新时不会直接修改 record 对象,而是创建了一个新的对象,这在处理状态管理和数据更新时是一个良好的实践。

2.对象转JSON字符串

JSON.stringify(response.principal)

3.JSON字符串转JSON对象

JSON.parse(principal)

4.有个响应式对象,然后想清空所有属性

const checkedList = reactive({
   })
Object.keys(checkedList).forEach(key => {
   
    delete checkedList[key];
});

5.判断参数不为空

第一种方案:

if (data.note1 == undefined || data.note1 == null || data.note1 == "") {
   
    param.remark = "";
}

第二种方案:

在 JavaScript 中,if (param) 语句会根据 param 的值来判断其真假(truthy 或 falsy)。在 JavaScript 中,以下值被视为“假”(falsy),即在条件判断中会被认为是 false:
Falsy 值
false: 布尔值 false。
0: 数字零。
-0: 负零。
0n: BigInt 类型的零。
"": 空字符串(无论是单引号还是双引号)。
null: 空值。
undefined: 未定义。
NaN: 非数字(Not a Number)。

示例

let values = [false, 0, -0, 0n, "", null, undefined, NaN];

values.forEach(value => {
   
    if (value) {
   
        console.log(`${
   value} is truthy`);
    } else {
   
        console.log(`${
   value} is falsy`);
    }
});

输出

false is falsy
0 is falsy
-0 is falsy
0n is falsy
 is falsy
null is falsy
undefined is falsy
NaN is falsy

6.格式化字符串

在 Java 中,String.format 和 MessageFormat 都可以用于格式化字符串,但它们的用法和适用场景有所不同。下面是对这两种方法的详细比较和用法示例。

  1. String.format
    String.format 是一个静态方法,用于创建格式化字符串。它使用 C 语言风格的格式说明符,适合于简单的字符串格式化。

用法示例

String name = "Alice";
int age = 30;

// 使用 String.format 进行格式化
String formattedString = String.format("My name is %s and I am %d years old.", name, age);
System.out.println(formattedString); // 输出: My name is Alice and I am 30 years old.

格式说明符

  • %s:字符串
  • %d:整数
  • %f:浮点数
  • %x:十六进制整数
  1. MessageFormat
    MessageFormat 是一个用于国际化的类,它允许你在字符串中使用占位符,并根据提供的参数进行格式化。它适合于需要处理多语言和复杂格式的场景。

用法示例

import java.text.MessageFormat;

String name = "Alice";
int age = 30;

// 使用 MessageFormat 进行格式化
String pattern = "My name is {0} and I am {1} years old.";
String formattedMessage = MessageFormat.format(pattern, name, age);
System.out.println(formattedMessage); // 输出: My name is Alice and I am 30 years old.

占位符

  • {0}:第一个参数
  • {1}:第二个参数
  • 可以继续使用 {2}、{3} 等来引用后续参数。

主要区别

  1. 格式化语法:
    • String.format 使用 % 符号和格式说明符。
    • MessageFormat 使用 {} 占位符。
  2. 国际化:
    • MessageFormat 更适合用于国际化,因为它支持格式化日期、数字和货币等更复杂的格式。
    • String.format 主要用于简单的字符串格式化。
  3. 性能:
    • 在简单的格式化场景下,String.format 可能更快,因为它的实现相对简单。
    • MessageFormat 在处理复杂的国际化需求时更为强大,但可能在性能上稍逊一筹。
  4. 选择建议
    • 如果你只需要进行简单的字符串格式化,并且不需要国际化支持,可以使用 String.format。
    • 如果你的应用需要处理多语言,或者需要格式化日期、货币等复杂类型,建议使用 MessageFormat。
  5. 总结
    • String.format: 用于简单的字符串格式化,适合快速格式化。
    • MessageFormat: 用于国际化和复杂格式化,适合需要处理多种格式的场景。

7.解析数组内容用逗号拼接

我有个["0", "1", "2", "3", "4"],我想输出:"0,1,2,3,4"

const warningNotice = ["0", "1", "2", "3", "4"];
const warningNoticeString = warningNotice.join(','); // 使用逗号作为分隔符
console.log(warningNoticeString); // 输出: "0,1,2,3,4"

8.刷新整个页面

总结:类似于执行F5刷新按钮

window.location.reload();

9.判断字符串长度

Array.from(str).length > 20

10.控制事件的传播和默认行为

比如图例中禁止鼠标右键默认弹窗而想展示自己绘制的弹窗时;比如阻止冒泡/捕获传播行为等等。

方法用于阻止事件的进一步传播。事件在 DOM 中是通过“冒泡”或“捕获”的方式进行传播的,调用这个方法可以阻止事件向上(冒泡)或向下(捕获)传播。

方法:
event.stopPropagation()

用于阻止事件的默认行为。例如,当用户点击一个链接时,浏览器会默认跳转到链接指向的页面;当用户提交一个表单时,浏览器会默认提交表单。调用这个方法可以阻止这些默认行为。

方法:
event.preventDefault()

本人其他相关文章链接

1.Vue3快速上手简介
2.vue3第一章基础:创建Vue3.0工程,包括使用vue-cli 创建、使用 vite 创建
3.《vue3第二章》常用组合式 Composition API,包括setup、ref函数、reactive函数、vue3.0中的响应式原理、计算属性与监听属性
4.vue3知识点:setup
5.vue3知识点:ref函数
6.vue3知识点:reactive函数
7.vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
8.vue3知识点:reactive对比ref
9.vue3知识点:计算属性与监视属性
10.vue3知识点:生命周期
11.vue3知识点:自定义hook函数
12.vue3知识点:toRef函数和toRefs函数
13.《vue3第三章》其它 Composition API(不常用,了解即可),包括shallowReactive 与 shallowRef、readonly 与 shallowReadonly等等
14.vue3知识点:shallowReactive 与 shallowRef
15.vue3知识点:readonly 与 shallowReadonly
16.vue3知识点:toRaw 与 markRaw
17.vue3知识点:customRef
18.vue3知识点:provide 与 inject
19.vue3知识点:响应式数据的判断
20.vue3第四章》Composition API 的优势,包含Options API 存在的问题、Composition API 的优势
21.《vue3第五章》新的组件,包含:Fragment、Teleport、Suspense
22.《vue3第六章》其他,包含:全局API的转移、其他改变
23.vue3知识点:Teleport组件
24.vue3知识点:Suspense组件
25.vue3使用音频audio标签
26.vue3 脚手架初始化项目生成文件的介绍
27.vue3 开发电子地图功能
28.快速上手Vue3国际化 (i18n)
29.java使用websocket推送消息到页面
image.png

重要信息

image.png
image.png
image.png
前端工具方法整理

目录
相关文章
|
7月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
136 1
|
7月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
212 5
|
7月前
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
168 5
|
8月前
|
存储 前端开发 JavaScript
前端的全栈之路Meteor篇(四):RPC方法注册及调用-更轻量的服务接口提供方式
RPC机制通过前后端的`callAsync`方法实现了高效的数据交互。后端通过`Meteor.methods()`注册方法,支持异步操作;前端使用`callAsync`调用后端方法,代码更简洁、易读。本文详细介绍了Methods注册机制、异步支持及最佳实践。
149 3
|
9月前
|
前端开发
前端基础(十四)_隐藏元素的方法
本文介绍了几种在前端开发中隐藏元素的方法,包括使用`display:none`、`visibility:hidden`、`opacity:0`等CSS属性,并提供了相应的示例代码。此外,还提到了其他隐藏元素的技巧,如通过设置元素位置、使用`overflow`属性和`filter`属性以及`rgba`颜色值来实现元素的隐藏。
114 2
前端基础(十四)_隐藏元素的方法
|
9月前
|
前端开发 JavaScript
前端基础(九)_this基本使用、this指向判断、改变this指向的方法
本文介绍了JavaScript中this的基本使用、this指向的判断以及改变this指向的方法。
122 1
前端基础(九)_this基本使用、this指向判断、改变this指向的方法
|
8月前
|
前端开发 JavaScript
掌握微前端架构:构建现代Web应用的新方法
本文介绍了微前端架构的概念及其在现代Web应用开发中的优势与实施方法。微前端架构通过将应用拆分成独立模块,提升了开发效率和灵活性。其核心优势包括技术栈灵活性、独立部署、团队协作及易于维护。文章详细阐述了定义边界、选择框架、管理状态和通信等关键步骤,并讨论了状态同步、样式隔离及安全性等挑战。微前端架构有望成为未来Web开发的重要趋势。
|
9月前
|
前端开发
前端基础(十一)_Float浮动、清除浮动的几种方法
本文介绍了浮动的概念、属性、特性以及清除浮动的几种方法,并通过实例演示了如何使用CSS实现元素的浮动和处理浮动带来的问题。
251 3
|
8月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
454 0
|
8月前
|
存储 前端开发 API
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
300 0