自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Javascript中如何让多个异步按顺序执行

直接调用(异步调异步)function fn1() { setTimeout(() => { console.log('fn1执行') fn2('fn1传递过去的参数') }, 1000)}function fn2(data) { setTimeout(() => { console.log('fn2执行', data) fn3('fn2传递过去的参数') }, 1000)}function fn3(data) { setTimeout(() =>

2021-12-10 14:33:22 4119

原创 vue+axios将后端返回的图片流显示到img中

axios.get("接口地址", { responseType: "arraybuffer", params: 传给后端的数据 }) .then(response => { return ( "data:image/png;base64," + btoa( new Uint8Array(response.data).reduce( (data, byte) => data + String.fromCharCode.

2021-12-10 11:19:29 1406

原创 前端日常开发中,对于图片的处理与优化

一、使用工具进行图片压缩压缩 png 格式的图片npm install node-pngquant-nativeconst pngquant = require('node-pngquant-native')const fs = require('fs')fs.readFile('./aa.png', (err, buffer) => { if (err) throw err const resBuffer = pngquant.option({}).compress(buffer

2021-12-10 11:08:43 879

原创 umy-ui 一个基于 vue 的 PC 端表格UI库,解决万级数据渲染卡顿问题,过万数据点击全选卡顿等等问题

npm安装npm install umy-ui按需引入在main.js中添加按需引入代码import { UTable } from 'umy-ui'Vue.use(UTable)示例 <template> <u-table :data="tableData" :border="false" style="width: 100%"> <template slot="empty"> 没有查询到符合条件

2020-12-15 16:02:10 2352 1

原创 递归展开数组对象,根据主键递归查找树形数据中对应的数据

/** * * @param {Object} * @param {Array} arr 数组对象 * @param {String} childrenKey 子数组的key * @param {Number=} expandLevel 可选 展开的层级 * @param {String=} levelKey 可选 树形结构中元素的层级字段 层级从0开始 当expandLevel有值时 levelKey为必须 * @param {Boolean=} noParents 返回展开数组时不包含根节

2020-12-11 16:20:35 691 1

原创 前端将后端返回的文件流转为excel并下载

在日常开发中,我们可能会遇到导出excel的情况,而后端此时给我们返回的是一个文件流,需要前端将文件流转为url地址进行下载。可以将这个方法封装成一个工具类,方便其他地方调用,我这里放到了utils.js里面import axios from 'axios'import Vue form 'vue'/** * 根据后端返回的文件流转为excel导出 * @param {Object} data */export function exportExcelMethod(data) { ax

2020-12-09 14:34:34 2059 3

原创 nodejs实现批量裁剪图片功能

1、初始化首先新建一个 tailor-img 文件夹,接着执行 npm init -y 初始化一个package.json2、安装相关插件archiver 压缩文件canvas 裁剪图片glob 批量获取路径npm i archiver canvas glob --save3、app.jsconst fs = require('fs')const { basename } = require('path')// 压缩文件const archiver = require('a

2020-11-20 09:18:32 529

原创 前端代码优化:优化js中的条件语句

在开发过程中,由于追求开发速度,我们往往很多时候都没有注意代码的可读性与性能,这里介绍几个技巧,让你写出可读性强、简洁的js代码1、多个条件满足之一时,推荐使用Array.includes// 优化前function test(val) { if (val === 'js' || val === 'java' || val === 'python') { console.log('编程语言') }}// 优化后function test(val) { cosnt arr = ['js

2020-11-13 17:47:39 98 2

原创 Performance --- 前端性能监控

一、什么是performanceperformance可以获取到当前页面中与性能相关的信息,可以检测到白屏时间、首屏时间、用户可操作的时间节点、页面总下载的时间、DNS查询的时间、TCP链接的时间等。二、前端性能主要测试点白屏时间:从打开网站到有内容渲染出来的时间点首屏时间:首屏内容渲染完毕的时间节点用户可操作时间节点:domready触发节点总下载时间:window.onload的触发节点新建个demo.html<!DOCTYPE html><html lang="

2020-11-13 16:01:12 863

原创 webpack入门

一、webpack五大核心概念1、entry打包的入口,可以是字符串、数组或对象2、output打包的输出3、mode模式,可以分为开发模式(development)与生产模式(production),默认为生产模式4、loader默认只能处理js、json格式的文件,loader的作用就是将其他格式的文件,转换成webpack能够处理的文件5、pluginwebpack插件,每一个插件都有一个特定的功能,能处理loader无法处理的事情二、HtmlWebpackPlugin与Clea

2020-11-13 15:41:44 79

原创 Vue项目首屏加载速度优化

一、路由懒加载1、作用提升用户体验,提升首屏组件加载速度,解决白屏问题2、代码示例2.1 未使用路由懒加载import Vue from 'vue'import Router from 'vue-router'import HelloWorld from '@/components/HelloWorld'Vue.use(Router)export default new Router({ routes: [ { path: '/', name: 'Hel

2020-11-13 15:36:30 222

原创 如何在Vue项目中使用自定义字体

首先要得到自定义字体包(后缀名为.ttf, .otf, .eot等格式的字体包),可自行下载也可以问UI小姐姐要字体包,拿到字体包后进入项目中在assets文件夹下建一个fonts文件夹把拿到的字体包放到fonts文件夹中接着创建一个fonts.css文件在fonts.css文件中定义你所用的字体(这里以PingFang为例)@font-face: { font-family: 'PingFang-RE'; /* 重命名字体名 */ src: url('./PingFang\ Re.

2020-09-02 13:59:11 1408

原创 mysql基本语句

1.增use myblog;show tables;insert into users(username, `password`, realname) values ('zhangsan', '123', '张三');2.查use myblogs;show tables;select * from users; --查询所有select id,username form users; --查询id和usernameselect * from users where userna

2020-09-02 10:41:46 77

原创 Nodejs开发,ORM框架Sequelize

一、什么是ORM对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。

2020-09-02 10:32:41 427

原创 Mongoose的数据检验与聚合管道

一、什么是mongoose的数据检验用户通过mongoose给mongodb数据库增加数据的时候,对数据的合法性进行的验证二、mongoose校验参数required:表示这个数据必须传入max:用于Number类型, 最大值min:用于Number类型, 最小值enum:枚举类型,要求数据必须满足枚举值enum:[‘0’, ‘1’, ‘2’]match:增加的数据必须符合match(正则)的规则maxlength:最大长度minlength:最小长度var mongoose = r

2020-08-10 11:32:16 256

原创 Mongoose索引、Mongoose内置CURD方法、扩展Mongoose Model的静态方法和实例方法

一、Mongoose索引索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快。MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。mongoose中除了以前创建索引的方式,我们也可以在定义Schema的时候指定创建索引。var mongoose = require('mongoose')var UserSchema = mongoose.Schema({ name: String, sn: { type: Str

2020-08-10 10:28:48 132

原创 预定义模式修饰符、Getters与Setters自定义修饰符

一、mongoose预定义修饰符mongoose提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化var mongoose = require('mongoose')var NewsSchema = mongoose.Schema({ title: { type: String, trim: true // 定义mongoose模式修饰符,去掉左右空格 }, author: String, pic: String, content

2020-08-10 10:13:50 117

原创 mongoose默认参数、模块化、性能测试

一、默认参数const mongoose = require('mongoose')mongoose.connect( 'mongodb://127.0.0.1:27017/eggcms', { useUnifiedTopology: true, useNewUrlParser: true }, (err) => { if (err) return console.log(err) console.log('数据库连接成功') }

2020-08-05 13:52:10 275

原创 mongoose操作数据库

一、mongoose介绍mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具。mongoose是node.js的驱动,不能作为其他语言的驱动mongoose的特点:通过关系型数据库的思想来设计非关系型数据库基于mongodb驱动,简化操作mongoose的使用// 1.引入mongooseconst mongoose = require('mongoose')// 2.建立数据库连接mongoose.connect('mongodb://127.0.

2020-08-05 11:42:50 130

原创 express结合multer实现文件上传功能

单文件上传:<!--add.ejs--><form action="/admin/nav/doAdd" method="post" enctype="multipart/form-data"> 标题:<input type="text" name="title" id="title"><br><br> 图片:<input type="file" name="pic" id="pic"><br><br

2020-08-04 13:59:20 150

原创 express框架常用中间件(插件)

1. body-parser用于post请求解析req.body消息体2. express-ip-filterip过滤器3. morgan 、 winston 、 express-winston日志记录4. cookie-parser和cookie-session解析客户端传过来的cookie,cookie-session中间件用来建立基于cookie的会话session5. request-validatekoa2、express、nodejs参数校验6. config-lite读取

2020-08-04 13:57:35 874

转载 Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页

1、Element UI 引入(整体引入)main.js// Element UIimport Element from 'element-ui'// 默认样式import 'element-ui/lib/theme-chalk/index.css'2、开始封装 iTable.vue 组件 (骨架)<template> <div class="table"&...

2020-03-18 09:03:07 315

转载 实用的vue插件大汇总 转载:https://www.cnblogs.com/ginkgo-leaves/p/10187915.html

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,方便查找使用,便于工作和学习。很全的vue插件汇总。一、UI组件及框架element - 饿了么出品的Vue2的web UI工具套件mint-ui - Vue 2的移动UI元素iview - 基于 Vuejs 的开源 UI 组件库Keen-UI - 轻量级的基本UI组件合集vu...

2020-03-17 15:10:06 223

原创 VsCode自定义设置,setting.json

{"editor.fontSize": 16,"workbench.iconTheme": "vscode-icons","editor.wordWrap": "on","[html]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},"editor.suggestSelection": "first","vsintel...

2020-03-17 15:08:43 418

原创 关于使用Nuxt.js + koa 构建 vue 项目时遇到的问题

npm run dev时,提示Cannot find module main.js,解决方案如:vue init nuxt-community/koa-template nuxt-learnnpm installnpm run devnpm install [email protected] --save-dev// 在nuxt.config.js里找到eslint-loader将...

2020-03-17 15:05:03 363

原创 关于使用 git bash 初始化 vue 项目时,上下箭头无法使用的问题

在 git bash 中使用 vue-cli3 初始化 vue 项目时,上下箭头无法选择原本的命令是 vue create my-project只需要 winpty vue.cmd create my-project 即可

2020-03-17 13:53:08 439

空空如也

空空如也

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

TA关注的人

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