1.5k 1 分钟

# JavaScript 状态模式

在前端开发中,状态管理是一个非常重要的问题。

随着应用程序的复杂度不断增加,状态管理变得越来越困难。

JavaScript 状态模式是一种优雅的解决方案,可以帮助我们更好地管理状态。

本文将介绍 JavaScript 状态模式的基本概念和使用方法,并通过一个实际的例子来说明如何使用状态模式来管理状态。

1.6k 1 分钟

# map()

map() 方法返回一个新数组,数组中的元素为原数组元素调用函数处理后的值。

接收参数:一个具有三个参数的回调函数。

  • current value:数组当前元素
  • index:数组当前元素的索引
  • arr:原数组本身

返回值:返回一个新数组,数组元素由回调函数返回的结果组成。

let list = [1, 2, 3, 4]
let res = list.map(item => item * 2)
console.log(res) // [2, 4, 6, 8]

4.9k 4 分钟

# 数组转对象

通用方法

const arr = [['name', 'Alice'], ['age', 30]]
const obj = Object.fromEntries(arr)

将数组转换为对象最快的方法

var person = ['arrary', 'number', 'string']
console.log({...person}) // {0: "arrary", 1: "number", 2: "string"}

2k 2 分钟

# 使用对象代替条件 if 判断

在某些条件下,我们需要根据变量的值来调用不同的函数或者赋值。一般我们遇到这种情况可能会写大量的 if 条件判断块,但是大量的 if 代码不利于代码阅读和理解,有些时候我们可以使用对象来解决此问题。

964 1 分钟

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。 下面为大家介绍一些常用的解构赋值操作。 # 1. 变量交换 ES6 之前我们变量交换的方式可能如下: var a = 1;var b = 2;var temp;temp = a;a = b;b = temp;在上述例子中 temp 其实是一个临时变量用来存储 a 的值,最后我们把 temp 的值赋值给 b 。 使用解构运算则非常简单: let a = 1;let b = 2;[a, b] = [b, a];console.log(a); // 2console.log(b); // 1上例子中, [a, b] =...
5.1k 5 分钟

# Prism Supported languages This is the list of all 276 languages currently supported by Prism, with their corresponding alias, to use in place of xxxx in the language-xxxx (or lang-xxxx ) class: Markup - markup, html, xml, svg, mathml, ssml, atom, rss GLSL - glsl PHP Extras - php-extras CSS -...
502 1 分钟

介绍 npm 官方文档的这样介绍 dotenv: Dotenv 是一个零依赖的模块,它能将环境变量中的变量从 .env 文件加载到 process.env 中。将环境相关的配置独立于代码之外亦是 The Twelve-Factor App 的要素之一。 # 使用 在项目中安装 dotenv npm install dotenv -S 根目录下创建 .env 文件 HOST=localhostPORT=3000MONGOOSE_URL=mongodb://localhost:27017/test 根目录下 app.js 下引入 dotenv...
1.6k 1 分钟

# chalk 是什么 chalk 是一个颜色的插件。可以通过 chalk.blue (‘hello world’) 来改变颜色,但是我并没有式样成功,有待验证。 可以参考 npm chalk 官网 简单用法 $ npm install chalkconst chalk = require('chalk');console.log(chalk.blue('Hello world!'));const chalk = require('chalk');const...
1.4k 1 分钟

# 前言

我们平时在开发代码时,很多构建工具在我们保存本地代码时都可以做到实时上传或者实时刷新页面,那么大家有没有想过构建工具是如何做到的?

想做到这一点,就需要实时监听本地文件的增删改,掌握这些时机就可以做到在文件改变时热更新或者实时上传。

下面我们就来聊一聊如何监听本地文件的变动!

2.1k 2 分钟

# 点击 clearable 清除按钮输入建议失效

我们会发现,如果给 el-autocomplete 组件标签加上 clearable 属性以后,那么,当我们输入内容以后,再点击 clearable 清空按钮清空输入框中输入的数据以后,当我们再重新输入文字的时候,请求会触发,后端返给我们的数据也获取到了,但是后端返回给我们的数据却没有渲染到页面上。就仿佛输入没反应了。解决方案比较直接的就是,当用户点击了 clearable 清空按钮以后,就让当前获取焦点的输入框失去焦点,回到最初状态,一切重新开始
即为:主动触发失去焦点,解决‘fetch-suggestions’输入建议失效的 bug,也就是: @clear="blurForBug()"

<template>
    <div id="box">
        <el-autocomplete
            :fetch-suggestions="querySearch"
            v-model="inputValue"
            @select="handleSelect"
            :debounce="0"
            :trigger-on-focus="true"
            clearable
            @clear="blurForBug()"
        ></el-autocomplete>
    </div>
</template>
blurForBug(){
	document.activeElement.blur()
}