自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (6)
  • 收藏
  • 关注

原创 docker基础操作与进阶 - 搭建基于pm2的node环境

Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。通俗点说,linux机器可以比作一键比较大的船,而docker可以制造若干个集装箱,而这些集装箱都是封闭的,每个集装箱里面都可以装不同的东西。延伸到项目中就是,docker可以制作若干个镜像,而每个镜像中都可以有不同的node、redis、mysql版本等。

2023-05-31 20:06:35 2059

原创 Promise源码实现

ECMAscript 6 原生提供了 Promise 对象,用来优雅解决异步问题,避免回调噩梦。Promise对象有三种状态:pending: 初始状态,不是成功或失败状态。 fulfilled: 意味着操作成功完成。 rejected: 意味着操作失败。实现Promise:目标:可以实现优雅的异步处理方式,以下是想要达到最终状态:new MyPromise(function(resolve){ setTimeout(()=>{ resolve(122121) },10

2021-03-17 10:38:41 288

原创 Vue源码剖析

前言Vue2.0源码地址:https://github.com/vuejs/vue最近发现一个神器,可以在线用vscode查看github源码,非常方便,只需在github后面加一个1s例:https://github1s.com/vuejs/vue1、目录解析解析目录有助于我们对Vue整个项目有个大致的了解,并能深入学习Vue架构思想Vue源码文件注释:├─ .circleci // 包含CircleCI持续集成/持续部署工具的配置文.

2021-03-09 18:01:02 1066 2

原创 axios拦截器之重复请求取消上次请求、路由切换取消接口

在项目中经常会遇到需要主动取消接口的场景,axios提供CancelToken的功能可以主动停止当前请求,从而避免无效请求,优化网络性能场景:远程搜索接口频繁请求,第二个接口先成功导致显示第一个接口返回的数据 前端切换路由,前一个路由的接口用不到了,但还在请求中这两种情况可以单独在组件中使用CancelToken来取消接口请求,但是如果要主动请求的接口较多,则会照成代码冗余,于是需要封装成一个公共的方法1、搭载请求容器及处理方法:cancel-request.js pengdi..

2021-03-02 18:05:20 1590

原创 前端存储技术

1、介绍前端存储就是通过前端技术存储一段信息,然后在不同页面(一般同域)都可以获取已存储信息的一种策略。相较于后端,前端也可以存储一些数据以供前端不同页面处理,前端存储方案有WebStorage、IndexedDB、Web SQL、cookie,都有各自的优缺点,下面是一张从浏览器截取的全家图:可以大致分为两种:小型数据存储:cookie、WebStorage 大型数据存储:IndexDB、Web SQL简单对比: 特性 cookie ...

2020-12-10 16:05:54 1942

原创 js正则排除运算

如果匹配排除if的结果/eim-fn((?!if).)+eim-fn/g匹配eim-fn(除了if的所有字段)eim-fn/^(?!([^f]|[^i]f))+$/待完善。。

2020-10-19 16:38:41 3937

原创 js处理接口请求下载文件,失败返回信息,成功下载stream流

之前工作遇到后台下载文件时会直接跳转到无权限页面,导致用户体验不好原因:后台使用stream传递,当无权限时提示无权限,当成功时下载文件前端是直接使用window.location.href进行下载,所以出现问题解决:先用接口请求下载地址 如果返回失败,则直接提示错误 如果成功则创建Blob进行下载downloadBlob(url) { downloadByUrl(url).then((res) => { let { data } = res

2020-09-22 17:13:22 4016 1

原创 js处理数组扁平化、数组层级化

在项目中经常遇到需要处理后台给的数据情况,有的数据需要处理成树形结构进行展示,有的数据需要一维数组进行过滤应用场景:层级数据常用于层级节点的展示,例如Element的tree组件 扁平数据常用于权限过滤,例如: v-if=‘haha.incluedes(''heiehi")’数据demo:层级数据是有父子关系的数组,且子节点都会放到该节点的chilren下 扁平化数据是一个一维数组,里面可能有parentId标明该节点的父节点id// 层级数据:tree = [ {

2020-09-14 16:01:52 3126

原创 js处理树形结构数据过滤

最近项目经常遇到后台接口返回整个树形结构,而前端展示只需要展示部分类型的数据,需要过滤一下,所以整理了一个过滤方法。非层级结构时过滤非常简单,只需要一层代码就够了export function filterTree (tree) { return tree.filter(item => item.type === 0)}而要做到子节点也过滤时就需要用到递归去过滤思路梳理:循环数组,然后过滤数据,如果有子节点,子节点过滤,把子节点传给递归函数实现:export fu

2020-09-14 15:17:28 9272 1

原创 webpack的几种hash的区别

通常在项目打包过程中会出现index.217812127887.js等形式,那么这么做的原因是什么呢?原因是浏览器缓存,我们要去掉缓存就需要在访问该js时加上一定的版本号,如:<link rel="stylesheet" href="./index.css?a=1">那么webpack打包也是如此,生产相应的版本号,具体的hash有三种1、Hashhash是跟整个项目的构建相关,只要项目里有文件更改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值2、

2020-05-28 16:23:09 3626

原创 mac的mysql8.0重置密码(设置密码为空)

mysql -u root -p 输入密码 进入mysql界面 执行ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY "" quit退出重进即可

2019-12-19 14:32:14 1192

原创 html的c3loading大全

整理了一份c3loading大全,直接复制进html即可。。。<!doctype html><html><head> <meta charset="utf-8"> <title>CSS加载动画</title> <style> body { background-colo...

2019-12-12 09:43:18 434

原创 mysql关联查询

以前一直不明白mongo和mysql的区别,只是知道一个是关系型数据库,一个是非关系型数据库,感觉这俩没什么区别,但是最近一个项目用到两个表关联查询才发现mysql这么好用。 前景:在做一个用户角色权限系统,在用户表中存着角色id,但是想通过只查一次sql语句就可以把数据查出来,这就用到了夺标关联查询。多表联查(1) 隐式内连接主体结构:select 表名.字...

2019-11-27 12:00:40 250

原创 mysql常用命令行指令整理

MySQL数据库类型:关系型数据库优势: 复杂的查询:可以使用SQL语句在一个或者多个表之间进行复杂的查询 事务支持:可以提高安全性能 一. 进入MySQL数据库mysql -h主机名 -u用户名 -p 输入密码简写:mysql -u root -p 输入密码二. 介绍数据库MySQL->小数据库->数据表->字段-&g...

2019-08-08 14:36:40 189

原创 单点登录sso及框架CAS介绍及引入node端

1、背景介绍单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。2、CAS介绍网上搜的一张流程图:CAS分为两部分,一个是CAS server,另一个是CAS client。CAS client可以...

2019-07-24 14:13:50 1483 2

原创 js获取当前网页的header信息及变量

function getHeaders(){ var req = new XMLHttpRequest(); req.open('GET', document.location.href, false); req.send(null); var headerArr = req.getAllResponseHeaders().split('\n'); var...

2019-07-17 17:26:17 14991

原创 CreateJs的拖拽、碰撞检测函数封装

create的拖拽函数和原生有一定的区别,在对原件进行拖拽的时候边界检测可能出现问题,对此封装了一套函数function Drag(obj,parentNode){ this.el = obj; if(arguments.length == 1){ this.pWidth = stage.canvas.width; this.pHeight =...

2019-06-19 18:08:51 1372

原创 微信小程序心得体会

1、微信小程序诞生的前景:1、受到手机内存的限制,用户无法下载诸多app2、用户为了简洁性不愿意下载app3、微信用户的日益增加2、微信小程序的特点:微信小程序的理念是”触手可及,用完即走” ,是一种不需要下载安装即可使用的应用。一次开发,多终端适配(不用适配ios或android)途径:通过微信(扫描二维码、搜索、分享)即可获得,和微信共用内存使用,占用内存空间忽略不计3...

2019-05-22 17:20:45 20258 1

原创 mac的vscode中git文件夹误删,彻底重装vscode

由于liveServer插件和某些插件起冲突,我听从网上建议删掉了git文件夹,结果我的vsocde的git选项就会报`当前没有源代码管理提供程序进行注册`的错误,非常不便,唯一解决的办法就是重新安装。 步骤:退出vscode程序 清除vscode的设置和配置项 sudo rm -rf $HOME/Library/Applicati...

2019-04-24 12:13:28 2326

转载 关于HTML(含HTML5)的块级元素和行级(内联)元素总结

1.首先我们要知道什么是块级元素和行级(内联)元素? 块级(block)元素的特点: ①总是在新行上开始; ②高度,行高以及外边距和内边距都可控制; ③宽度缺省是它的容器的100%,除非设定一个宽度; ④它可以容纳内联元素和其他块元素。 内联(inline)元素的特点: ①和其他元素都在一行上; ②高,行高及外边距和内边距不可改变;...

2019-04-01 16:57:40 1879

转载 React组件的通信方式

在使用 React 的过程中,不可避免的需要组件间进行消息传递(通信),组件间通信大体有下面几种情况:父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信下面依次说下这几种通信方式。父组件向子组件通信这是最简单也是最常用的一种通信方式:父组件通过向子组件传递 props,子组件得到 props 后进行相应的处理。下面是演示代码:父组件 App.js:...

2019-01-29 11:47:47 176

原创 ES678重要知识点总结

ES6:也就使es2015,这一版更新了非常重要的知识点,也是目前前端面试内容占比最多的一部分1、let,const.    1.11块级作用域:见到这种变量首先想到的就是es6新添了一种作用域,块级作用域。而生效过程即使在有let和const存在就会有会计作用域,顾名思义就是在大括号里有作用域,即for,if等语句中也存在作用域    1.12不存在变量提升:传统的会有变量提升,先v...

2018-12-05 12:20:00 3582 1

原创 fetch竟然都是浏览器自带的了?==》window.fetch

现在window.fetch基本上每一个浏览器都已经自带(IE除外),以后再也不用引入$.ajax、axios、fetch了就能用了axios没有这殊荣,原生自带意味着什么,不用说什么了、多么重要能让window当中自带fetch方法,以前听过一种说法叫传统ajax已死,fetch永生,当时还以为是一句笑话,现在看来,fetch已经征服了各个js大佬,正在走向通用化的道路如果fetch组建...

2018-12-04 18:09:35 2809

原创 react之dva框架的使用

dva框架的中文官网dva中文教程在介绍dva之前,推荐一款网页编程工具,codesandbox,在线编写工具,前提要网速要快,这样就不用在内存中下载模块了,随用随时下载模块,缺点就是网速慢时界面不好使用$ npm install dva-cli -g//下载全局脚手架$ dva -v //脚手架版本dva-cli version 0.9.2$ dva new dva-demo...

2018-12-04 16:49:11 2154

原创 js对象的深拷贝及其的几种方法

深拷贝和浅拷贝是javascript中一个比较复杂的问题,也是面试官最喜欢问的问题之一,通过这个为可以看出是否入门,深拷贝和浅拷贝也是初学者经常犯错一个点。简单来说深拷贝是拷贝储存在栈中的对象,而浅拷贝是从内存中拷贝,这就涉及到数据存放位置了,总所周知,数据大体可以分为两种数据类型,一种是基本数据类型,数据结构不是很复杂,单独可以存在内存中就可以,而另一种是复杂数据类型,也叫引用数据类型,例如...

2018-12-04 11:29:50 32042 5

原创 node上传文件或者整体文件夹到阿里OSS服务器流程

官网介绍:OSSnode上传文件node上传文件功能首先需要开权限,即拥有上传到服务器的权限,及对应的ID和secret,下面是OSS官网中介绍的node上传文件到OSS服务器的步骤let OSS = require('ali-oss')let client = new OSS({ region: '&lt;Your region&gt;', accessKeyId: '&l...

2018-12-03 16:11:51 5407

原创 js判断网络状态

一般来说判断网络状态都是用的h5提供的navigator去判断、项目一般这样去用if(!navigator.onLine){ e.stopPropagation(); layer.msg('网络未连接,请检查重试',{time:3000,icon:5}); return;}还可以通过事件去判断网络何时断开何时连接,不过通过事件去判断向不好window.addEv...

2018-11-26 18:35:49 12679 1

原创 关于前端可视化一些想法

    前端可视化是一个比较大的方向,目前也有专门的可视化工程师,前端可视化其实主要基于两种方式去实现,一种是html5新出的canvas,另一种是svg。    在我看来,canvas更像自己用手画上去的,它是一种位图,在网页中具有保存的功能,另外缺点就是放大会失真,但是毫无疑问性能比svg要好,而svg更像html标签一样,另外我们用纯div+css也可以做到可视化,不过性能就更差了,sv...

2018-11-20 17:15:38 5189 1

原创 typescript一些想法

        一直不喜欢typescript,因为作为一个前端工作者,最讨厌的就是被条条框框束缚,而且写完typescript还要转译成js,就比较可笑了,最近开始了解h5游戏才了解typescript重要性,因为不会ts就没法用白鹭引擎,加了些限制,游戏运行就会更快,性能更高,所以想了解一下ts。        官网:https://www.tslang.cn/docs/handbook/...

2018-10-25 16:47:28 283

原创 上传图片并将图片展示在页面中

html需要一个上传的input,一个canvas​&lt;input type="file" id="img"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;canvas id="canvas"&gt;&lt;/canvas&gt;input是用来上传图片的,而canvas则是用来展示上传的图片

2018-09-14 17:14:51 3030

原创 es2018(es9)前瞻

命名捕获语法 : ?&lt;name&gt;一:举个栗子 我们要把从2018-05-20取出年月日1:普通方法1 let str = '2018-05-20';2 let reg1 = /(\d{4})-(\d{2})-(\d{2})/;3 let arr = str.match(reg1);4 let year = arr[1],5 month = arr[2]...

2018-09-11 11:56:34 794

转载 Mac 按键标识

Mac键盘符号和修饰键说明⌘ Command ⇪ Caps Lock ⇧ Shift ⌥ Option ⌃ Control ↩︎ Return/Enter ⌫ Delete ⌦ 向前删除键(Fn+Delete) ↑ 上箭头 ↓ 下箭头 ← 左箭头 → 右箭头 ⇞ Page Up(Fn+↑) ⇟ Page Down(Fn+↓) Home Fn + ← End Fn ...

2018-09-05 10:32:02 2558

原创 在 Mac 上快速输入 ⌘、⌥、⇧ 等特殊字符丨一日一技 · Mac

作为一个 前端 工程师,写一些博客或者教程的时候经常会用到这些特殊符号:⌘、⌥、⇧、⌃、⎋  ,比如:按 ⌥ + ⎋ + ⌘ 组合键强制退出应用按   ⌘ + B 编译……⌘(command)、⌥(option/alt)、⇧(shift)、⌃(control)、⎋(esc)等这些符号在 Mac 中叫做「技术符号」。那么,如何快捷的在 Mac 上输入这些特殊字符呢?使用「表情...

2018-09-05 10:26:10 2606

原创 keymaster.js的使用(监听键盘按键的插件,最详细的官方文档)

Keymaster是一个简单的微型库,用于在Web应用程序中定义和分派键盘快捷键。它没有依赖关系。用法包含keymaster.js在您使用之前引入,照常加载:&lt; script src = “ keymaster.js ” &gt; &lt; / script &gt; Keymaster没有依赖关系,可以完全独立使用。它不依赖于任何JavaScript库或框架。*最好...

2018-09-05 10:04:20 4266

原创 理解JavaScript 执行机制及异步回调(setTimeout/setInterval/Promise)

对于javascript执行机制的理解一直都是混淆不清。在面试或工作的过程中,也经常会遇到代码执行顺序或函数生命周期加载等类似的问题,这些多多少少都与javascript的执行机制相关。今天发现一篇很好的文章,欣喜之余,加以转载,供感兴趣的小伙伴学习,感谢作者分享。不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道...

2018-09-04 12:15:41 3034 1

原创 GitHub上README.md常用的编写手法

这里只介绍最常用和最常见的功能,若想查看全部的语法,请移步http://wowubuntu.com/markdown/index.html(1)标题 标题使用不同数量的"#"来标识是什么层级,可以对应于HTML里面的H1-H6,下面是示例代码和效果 “========”风格的也可以,但是我不喜欢,赶不上"#"的好用(2)图片 我...

2018-09-04 11:49:16 1010

原创 js获取服务器端时间的方法

      首先我们应该明白js是客户端执行的,所以,js的一切关于时间的函数,如Date.now()都是以客户端为准的,而当我们有倒计时的需求时,不可能以客户端的时间为准,如果客户端时间不予网络时间一致,整个项目就完蛋了,所以我们需要获取服务端时间      我们获取服务器时间是发起ajax请求,然后获取请求头即header为准的      两种方案:由于我们获取到的是英文时间,与中...

2018-08-31 17:29:10 32254 4

转载 Mac抓包神器-----Charles

Charles 是一款Mac上的HTTP代理服务器、HTTP监视器、反向代理服务器,可以让开发者监视查看所有连接互联网的HTTP通信,包括请求,响应和HTTP头信息等等,俗称“抓包”工具,对于Web开发人员来说是一款很有价值的辅助工具,具有Firefox插件,非常不错!由于老板提出的需求,所以本人就花费了些时间去研究这个网络抓包工具,写此文而记之。一.下载与安装   可以选择从官网的渠...

2018-08-31 16:25:10 549

原创 js的constructor和prototype

先说下这两者的关系,举例说明,var a=[1,2,3]    ,那么a的constructor就是Arrayconstructor是默认指向创建当前对象的构造函数, 但是这里面有一些坑要注意, 比如你的原型prototype被改了, 实例的constructor就变了 Cat.prototype = new Animal();Cat.prototype.constructor...

2018-08-28 17:18:43 2728

原创 Process 进程

一. 多任务操作系统可以同时运行多个任务二. 单核CPU实现多任务的原理操作系统轮流让多个任务交替执行 比如QQ执行了2us ,在切换到微信 执行了2us,在切换到其他,表面看起来像是在同时执行,是因为cpu的调度太快三. 多核cpu实现多任务的原理如果任务量多于核心数依然是让多个任务去交替执行(1)并发看起来像是同时执行 其实还是cpu去调度(2) 并行真正的...

2018-08-22 11:38:02 643

Navicat Premium.app.zip

Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。 提示已损坏解决方案: sudo bash xattr -cr /Applications/Navicat\ Premium.app/

2019-12-18

java基础入门手册.zip

内容:1、JAVA_精通swing程序设计.chm2、JAVA_完完全全的中文版Java API_Sun公司官方出版3、JAVA_Thinking in Java(中文版 由yyc,spirit整理)4、java新手教程

2019-06-20

javaee学习笔记.zip

Java EE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。

2019-06-20

Linux相关指令.chm

最详细的linux学习笔记,涵盖了vim、ftp搭建、连接服务器、目录结构、ls、pwd、open、数据库等等

2019-06-20

微信小程序echarts组件

为了兼容小程序 Canvas,ECharts提供了一个小程序的组件,用这种方式可以方便地使用 ECharts。index.json 配置如下: { "usingComponents": { "ec-canvas": "../../ec-canvas/ec-canvas" } }

2018-10-24

Lossless Photo Squeezer for mac

Lossless Photo Squeezer 无损图片瘦身是一款大量压缩图像容量而丝毫无损图片质量的专业工具。专业优化PNG,JPEG和GIF等格式的图片大小。您可以优化您所有的照片,从而挤出大量的硬盘空间,网络空间,同时,您可以更多更快地在线储存和共享照片。对图片快速优化,减小文件尺寸,适合网络快速传输又不损失太多细节适合优化web图片

2018-09-13

空空如也

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

TA关注的人

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