自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Minyoung 的博客

个人网站https://zeroojs.com,大量资源,大量干货等你来

  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 关于 MCV Service 的 Response 封装(装饰器)

在过去的很长一段时间里我封装了很多Service返回值的标准输出格式,但冠绝都不够优雅,最开始使用带泛型的函数包裹返回值。现在我发现使用Decorator 来重新实现让编码更优雅,也更语义化。

2022-03-29 00:07:32 1024

原创 [阿里面试题] 有多个并发请求时,实现一个请求完成后,再请求下一个

题目有多个并发请求时,实现一个请求完成后,再请求下一个。实现间隔1s按顺序打印出1、2、3、4。以下提供部分代码!function request(x) { return new Promise(resolve => { const timer = setTimeout(() => { console.log(x) resolve(x) clearTimeout(timer) }, 1000) })}function se

2022-03-10 21:49:29 1710

原创 Added non-passive event listener to a scroll-blocking ‘touchstart‘ event. Consider marking ...

1.npm i default-passive-events -S2.main.js引入入:import ‘default-passive-events’

2022-03-02 13:57:11 1288

原创 不用注册,直接下载jdk

使用下方地址选择一个内部账号登录即可http://bugmenot.com/view/oracle.com

2021-09-27 09:00:54 910

原创 js 多维数组扁平化

代码/** * 多维数组扁平化 * @param {Array<T>} deepArr 多维数组 * @param {Array<string>} hideKeys 扁平后不要的key值 * @returns Array<T> */function toFlatness(deepArr = [], hideKeys = []) { const reg = new RegExp(hideKeys.join('|')) const list = []

2021-07-09 09:52:47 185

原创 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

在配置文件my.ini中添加skip-grant-tables[mysqld]skip-grant-tables # 新添加(跳过密码,直接进入mysql)port = 3306...重启mysql 服务net stop mysql; # 停止服务net start mysql; # 开启服务进入mysqlmysql -uroot -p # 直接回车,喊输密码也直接回车设置密码set password for 'root'@'localhost'=password('12345.

2021-05-05 17:49:09 220

原创 SM国密算法概念介绍

国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。SM2算法(SM2椭圆曲线公钥密码算法)SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密.

2021-04-19 10:21:36 1340

原创 vite 创建 vue3 + ts项目

初始化项目创建一个文件夹,名称就是你的项目名称即可,在文件夹中使用以下命令初始化项目npm init vite-app安装依赖npm install 或yarn安装插件添加typescript,这里直接使用vue add typescript会报错,需要先添加一个依赖npm install @vue/cli-service --save-dev或yarn add @vue/cli-service -D使用vue添加插件,如果没有安装@vue/cli的先全局安装npm ins

2020-12-20 16:20:13 1331 1

原创 发布自己的npm包

发布自己的npm包创建项目文件夹,这里就举例项目名称为npm-demo进入项目文件夹,创建package.json文件逐项填写配置npm init使用默认配置npm init -ypackage.json配置说明:http://caibaojian.com/npm/files/package.json.html编写你的项目,这里就举例入口文件是index.js,我就随便写点东西exports.print = (content) => console.log(content);登

2020-10-08 22:42:45 146

原创 1130 Host ‘xxxx‘ is not allowed to connect to this MySQL server | 1045

解决远程链接错误解决ERROR 1130: Host ‘***.***.***.***’ is not allowed to connect to this MySQL server 方法版本 mysql 5.6环境 CentOS 7.6 64位进入mysqlmysql -u root -p;输入密码后便进入mysql,但我在这里又出现了一个错误ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’如果有小伙伴

2020-09-21 09:47:23 223

原创 element-ui 按需加载配置

使用element-ui按需加载爬坑,在使用element-ui官方给出的配置报babel版本问题。目前安装的babel都比较新,而element-ui是使用的babel-preset-es2015,我么将配置babel的地方改成我们使用的babel就可以了。使用按需加载之前需要插架的支持,安装以下插件yarn add babel-plugin-component -D或npm install babel-plugin-component -D在babel.config.js:(我采用的是b

2020-08-25 11:03:37 577

转载 js 判别IE浏览器版本

// 获取IE版本function IEVersion() { // 取得浏览器的userAgent字符串 var userAgent = navigator.userAgent; // 判断是否为小于IE11的浏览器 var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1; // 判断是否为IE的Edge浏览器

2020-08-24 13:11:33 418

原创 vue.config.js 开发打包配置

基于vue-cli 4.x配置,觉得有必要的小伙伴可以当做模板直接使用。const path = require('path')const UglifyJsPlugin = require('uglifyjs-webpack-plugin')const CompressionWebpackPlugin = require('compression-webpack-plugin')const { HashedModuleIdsPlugin } = require('webpack')const is

2020-08-03 08:20:50 4412

转载 解决vue修改数据页面不重新渲染问题(Vue中数组和对象更改后视图不刷新(转载)

vue渲染机制和如何解决数据修改页面不刷新问题的多种方法本文不讲原理,只讲干货易懂易学,(感觉能学到知识,麻烦给小编来个赞!)首先 第一点,vue底层是 将data对象传人,使用Object.definePropety,转换为getter和setter,所以,vue不支持IE8.简单介绍一下Object.definePropety,Object.defineProperty(obj, prop, descriptor)//参数obj要在其上定义属性的对象。prop要定义或修改的属性的名

2020-07-07 15:08:10 3357 1

原创 解决electron安装慢的问题

去这个链接https://github.com/electron/electron/releases找到自己想要的版本,点进去下载。找到对应的系统版本和SHASUMS256.txt文件并下载,放到以下缓存路径。这是我下载的版本,系统是macOS catalina 10.15.2SHASUMS256.txt文件缓存路径,没有electron就新建一个文件夹然后再丢进去Linux:$XDG_CACHE_HOME或~/.cache/electron/苹果系统:~/Library/Ca..

2020-06-02 09:18:44 1667 1

转载 微信小程序回到顶部的两种方式

一,使用view形式的回到顶部HTML:<image src='../../img/button-top.png' class='goTop' hidden='{{!floorstatus}}' bindtap="goTop"></image>css:/* 返回顶部 */.goTop{ height: 80rpx; width: 80rpx; position: fixed; bottom: 50rpx; background: rgba(0

2020-05-28 09:19:06 939

原创 关闭 A cookie associated with a cross-site resource at ...浏览器警告

A cookie associated with a cross-site resource at … 这个是由于cookie跨域导致的,但不影响正常使用,淡黄色的警告~也让人不爽。干掉!Chrome浏览器地址栏输入chrome://flags/,搜索 Cookie deprecation messages ,选择Disabled,此时浏览器下方会出现一个小按钮喊你重启浏览器,点它!重启后一片清爽!...

2020-05-19 17:48:00 12780

原创 node-sass 安装失败问题解决方案

node-sass 安装失败问题解决方案当我们去github上找到一个前端项目,公式项目整合、调试等场景里面样式使用sass、scss来编写的时候,我们就必不可少的回去安装sass、node-sass、sass-loader三件套。以前node版本在12.x的时候还好,切使用npm来安装node-sass除了慢点基本没啥问题,而现如今node14.x都出来了,webpack4.x+的时代,在安装node-sass的时候总是会报错,总是会出现gyp ERR!...之类的错误,大多都是**__binding.

2020-05-17 15:58:33 1020

原创 使用koa、Nginx处理vue项目的history模式

使用koa处理vue项目的history模式在vue项目的路由中默认是hash模式,又叫前端路由,根据浏览器url地址栏中的变化,使用onhashchange事件监听做出相应的操作,不会向服务器发送请求。但是若采用了history模式,就大大不同了,history不怕前进不怕后退就怕刷新,history模式是由浏览器提供的history api来处理。而且将vue项目(非ssr)打包后的静态资源...

2020-05-06 11:14:13 1260

原创 你使用过:placeholder-shown和:focus-within伪类吗?

placeholder-shown当input或者textarea元素拥有placeholder属性的时候可使用该伪类,选择所有显示占位符(placeholder)的元素。当placeholder的内容显示的时候拥有该伪类。比较直观的感受就是当用户框输入内容时该伪类不在生效。MDN:传送门这是一个实验中的功能此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用...

2020-05-06 09:52:57 328

原创 前端代码规范

前端代码规范Front Standard Guide前端 JS 项目开发规范规范的目的是为了编写高质量的代码,让你的团队成员每天得心情都是愉悦的,大家在一起是快乐的。引自《阿里规约》的开头片段:----现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁...

2020-04-29 13:11:30 889 1

原创 vue实现消息提示框

我们常常看到很多vue生态下的ui框架的消息提示框,在页面切换的时候依然停留在页面,我们知道vue这种单页面渐进式框架,所有的操作和元素都是挂载在一个节点上的,当路由变化是整个节点下的dom元素也在重新渲染,若要实现ui框架中的类似的消息提示框的话,理论上就该把这样的组件挂载到其他的节点上,这样就互不影响了。vue已经为我们考虑好了,在vue上提供了一个vue.extend()函数,可以创建一个...

2020-04-28 23:47:41 7935

转载 package.json配置详解

默认的package.json文件直接使用命令:npm init --yes生成{ "name": "pingdingshan", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" &a...

2020-04-19 00:16:53 770

原创 在centOS在安装nodejs

在centOS在安装nodejs超简单方式:需要工具FileZilla根据系统版本下载对应的node包我这里使用的是v9.x的,因为我的服务器是32位,高版本的node不支持32位了,下载链接:https://nodejs.org/dist/latest-v9.x/使用FileZilla上传服务器随便找个文件夹丢上去,我是上传到/home里面,重新命名node-v9.tar.x...

2020-04-14 21:23:13 193

原创 js之reduce巧用

在JavaScript数组函数中有一个reduce函数,和filter、map、forEach等方法略有不同,虽然中间也是有内部循环,但reduce多了一层递归。先看看reduce函数接收的参数。reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, ini...

2020-04-09 23:43:19 275

原创 webpack学习记录(第三阶段)

手写webpack文章目录手写webpack构建自定义命令手写loader手写插件(简单实现)手写babel-loader实现file-loader实现url-loader实现css-loader,改造style-loader构建自定义命令因为这是单独的全局功能模块,源码请移步至https://github.com/smallMote/ypack.git手写loader这里以处理le...

2020-04-06 22:36:31 206

原创 js实现一个简单的订阅模式

订阅模式应用非常广泛,比如Vue中的钩子以及Vuex的设计模式中都大量使用了订阅模式。下面就简单的演示一下。class Event { constructor() { this.handlers = {} // 事件队列 } // 注册事件(发布) addEventListener(name, handler) { if (!(name in this.h...

2020-03-21 18:26:57 461

原创 webpack学习记录(第二阶段,持续更新)

Webpack(>4.0.0)第二阶段打包多页应用webpack.config.jsconst path = (p) => require('path').resolve(__dirname, p)const HtmlWebpackPlugin = require('html-webpack-plugin')module.exports = { mode: 'devel...

2020-03-17 23:30:18 193

原创 pm2常用命令

p2m常用命令pm2 start app.js # 启动app.js应用程序pm2 start app.js --name="demo" # 启动应用程序并命名为 "demo"pm2 start app.js --watch # 当文件变化时自动重启应用pm2 start script.sh # 启动 bash 脚本...

2020-03-10 10:18:37 313

原创 vscode 对js提案装饰器的支持

vscode默认不支持ts或js文件使用提案中的一些语法,vscode会给予错误提示。以下是我的解决办法。错误提示:步骤一:步骤二:在用户选项下打钩就是全局支持,在工作区下打钩就是工程项目,工作区下支持。若是vscode 1.42.1版本或更新的版本,立即生效。若低于此版本则需要重启vscode。...

2020-03-06 10:45:50 1080

原创 webpack学习记录(第一阶段)

Webpack(>4.0.0)本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个 依赖图(dependency graph),此依赖图会映射项目所需的每个模块,并生成一个或多个 bundle。安装yarn add webpack webpack-cli -Dwebpack可以0配置打包...

2020-03-05 23:58:38 226

原创 MongoDB 基础增删改查

MongoDB中文API创建数据库use DATABASE_NAMEeg: 创建test数据库use test如果数据库不存在则创建数据库,若存在则切换到该数据库。若数据库中没有数据,则不予显示。删除数据库切换到数据库,以test数据库为例子use testdb.dropDatabase()插入数据(集合)一般我们在mongodb中是以集合为单位,一个集合就...

2020-02-29 00:15:44 558

原创 Mac 关于MongoDB数据库的安装和设置全局环境变量

下载进入官网点击Software选项选择社区版本(Community Server),选择好系统,点击下载。我这里也会附上官网给的链接,点击下载安装因为我们下载的是tgz格式,直接双击加压就好,然后将解压后的那一坨放在/usr/local这里面,也最好重新去个名字,可以使用mac的终端直接输入/usr/loca进入。然后可以有选择性的在此目录下创建一个文件夹(data/db)存放mongo...

2020-02-28 15:56:59 584

转载 关于vuex-router-sync的作用

我为什么要转载这篇文章呢?原因其实很简单,也是让人失望。事情的经过是这样的,我在别人的代码里看vuex-router-sync,我当时就在想为什么要用这个东西,这个东西可以解决什么问题,可以带来什么好处,在什么样的场景下需要用它,用它是不是会比其他方案更加方便。然后我首先还是选用了百度进行搜索,翻了3页,都没有找到一篇像样的问题,真正去说这个东西的作用,都是人云亦云,搜索了半天,终于看到了上面的链...

2020-02-19 11:37:36 764 2

原创 axios 主动取消请求

axios 主动取消请求已经发送的请求,在没有收到后台返回之前主动取消。这样的场景很常用。例如:一个支付组件,正在支付的时候用户立即又关闭了组件,这时应该立即取消支付请求。又或者tabs切换的时候,都是经常用到的。这里我是用Typescript来封装的一个简单的axios请求做演示。api.jsimport axios, { CancelTokenStatic } from 'axio...

2020-02-05 11:50:15 1161

原创 Typescript封装防抖和节流函数

防抖函数在规定时间内重复执行同一个函数,但是只生效一次函数的行为。比如由于网络延迟,用户在一定时间内会重复点击某一个按钮,然而不断的执行按钮上的事件。若该事件是网络请求,则会给服务器不断造成压力,这是我们不愿看到的。节流函数在规定时间内重复执行同一个函数,但是按照一定的时间段生效函数的行为。和防抖函数非常相似。例如在支付回调后我们要确认支付的状态,可以手动检查+自动检查的情况下,我们使用节流...

2020-02-02 17:23:15 9090 4

原创 vue-cli3 全局使用 CSS 预处理语言变量

vue-cli3全局使用CSS预处理语言变量这里面包含Less、stylus、sass、scss我们主要使用一个插件style-resources-loader来实现。使用vue add style-resources-loader 添加插件的方式,这时控制台会让你选择语言,选择好回车后vue-cli3会在vue.config.js这个文件中自动给你配置一部分。module.ex...

2020-01-15 10:55:40 989

原创 Vue中使用Vue.use注册全局插件-组件、指令、过滤器等

在Vue项目中我们往往会用到功用组件,使用在不同层次、不同地方的的组件,以至于我们每次都会去import组件并且使用components注册,如果是两个三个还能接受,但是比如element-ui框架中el-button这样的组件使用频率是非常的高,那就非常繁琐。Vue官方文档中给我们提供了在main.js中使用Vue.component()的方式注册全局组件,这样是很好的,但是在我看来不算...

2019-12-13 10:25:01 1020

原创 js 将数据按需分类

classifyDemand 函数说明该函可将数组按字段分类,并将字段或自定义名称作为索引便于查找,分类显示,大大提高了试图的遍历压力。函数体/** * @param arr 需要分类的数组 * @param value -> object | array * @param key -> string * @param nickName -> string *...

2019-12-10 13:39:43 634

原创 自定义组件实现双向绑定

在很多情况下我们都会使用到自定义组件的双向绑定,今天我这里使用vue的model属性来实现双向绑定,其实原理还是一样的,只是我觉得这样做会不那么繁琐。父组件<template> <child v-model="message" /></template>export default { data() { return { ...

2019-11-25 21:21:16 547

解决Photoshop插件提示无法加载扩展,因为它未经正确签署问题(windows)

解决Photoshop插件提示无法加载扩展,因为它未经正确签署问题(windows),下载文件后直接双击即可。

2021-09-01

activate-power-mode-master.zip(代码特效插件)

activate-power-mode-master.zip 代码编辑器特效插件 可用于IntelliJ IDEA/Atom

2018-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除