自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 webpack文件指纹

webpack文件指纹前沿As we all know, 浏览器会缓存文件。缓存的好处是,浏览器直接读取缓存文件,速度更快,用户体验好。缺点是:当我们修改了文件内容,发布之后,用户看到的文件还是缓存中的老文件。所以,这个时候我们需要告知浏览器,这个缓存文件不是最新的,需要加载最新的。如何做到这一步呢?我们只需要修改文件名称,当浏览器触发缓存没有命中这个文件名的时候就会重新加载。这时候就用...

2020-04-23 11:21:59 306

原创 # javascript基础之数据传输原理

javascript基础之数据传输原理js的数据类型可以划分为两种:一种javascript的原始数据类型:undefined、null、number、string、boolean、symbol。另一种是:javascript的引用数据类型:数据存放位置以及方式原始数据类型存放在栈(stack)中,直接存储在变量访问的位置。(是他是他就是他),栈中包含 变量的标识和值。引用数据类型...

2020-04-23 11:21:08 520

原创 前端基础算法--选择排序

算法之排序选择排序快速排序会在一组无序的数列中找到一个最小元素,然后,依次和没有排序的做比较。需要循环比较n-1次 const arr = [3,5,15,26,23,6,32,44,65] function selectionSort(arr, len = arr.length) { arr.map((e, i) => { ...

2019-12-06 13:27:40 178

原创 前端基础算法--快速排序

算法之排序快速排序在数组中,找一个基准点,然后splice出去;将数组中小于改基准点的数据放在一个数组,大于基准点的数据放在一个数组;对左边的数组进行递归操作,对右边的数组递归操作,最后concat起来,并返回function quickSort(arr) { arr = arr.concat(); if(arr.length<=1){ retur...

2019-12-06 11:56:22 501 2

原创 前端基础算法--冒泡排序

算法之排序冒泡排序冒泡排序会将元素像小水泡一样从大到小一个个的移动。他的思想是:相邻两个元素做比较,如果左边的大于右边的,那么左右位置交换,当左边的大于右边的,那么位置不变。const list = [5,8,6,3,9,1,2,7];情况一:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。2.第一轮把最大的元素放到了最后面。3.由于每次排序最后一个都是最大的,所以之...

2019-12-06 11:55:49 253

原创 观察者与订阅发布者的区别

观察者模式与订阅发布者模式观察者从概念上来解释的话:目标和观察者都是基类,目标是维护观察者的一系列方法,观察者提供更新的接口。具体观察者和具体目标继承各自的基类,然后具体观察者把自己注册到具体目标中。在具体目标发生变化的时候,调度观察者的更新方法。个人理解:目标与观察者直接对接,其中,目标为一个类,提供具体的目标。观察者为一类,提供监听目标变化从而产生的一系列操作的api。将观察者放在目标中...

2019-04-19 10:28:02 350

原创 axios在vue中的配置和使用

axios在vue中的配置配置import axios from 'axios';// import Vue from 'vue';import Cookies from 'js-cookie';import utils from './utils';const baseURL = process.env.baseUrl;const http = axios.create({ ...

2019-04-18 17:32:18 294

原创 浏览器渲染中的重绘和回流

重绘和回流影响重绘和回流会在我们设置节点样式时频繁出现,同时也会很大程度上影响性能。重绘是当节点需要更改外观而不会影响布局的,比如改变 color 就叫称为重绘回流是布局或者几何属性需要改变就称为回流。回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变父节点里的子节点很可能会导致父节点的一系列回流。以下几个动作可能会导致性能问题:改变 window 大小...

2019-04-17 15:17:34 360

转载 满足日常开发的git 学习

满足日常开发的git 学习前言第一次使用git拉取项目(clone)分支管理(branch)切换分支(checkout)提交内容(commit)代码合并冲突获取更新时的意外情况开发到一半,却需要切换分支版本回退前言具体的git命令清单请参考阮一峰老师的博客,两者结合学起来更加快捷。第一次使用git第一次使用Git,需要先配置自己的邮箱与名称配置邮箱地址:git config --glo...

2019-03-26 14:58:41 125

原创 css 伪类实现垂直居中

css 伪类实现垂直居中csscss .wrapper { width: 300px; height: 300px; border: 1px solid #ccc; text-align: center; } .wrapper::after { content: ''; display: inline-block; vert...

2019-03-25 11:08:57 3309

原创 javascript高阶函数之reduce

javascript高阶函数之reduce语法:参数:描述学以致用语法:arr.reduce(callback,[initialValue])该方法接收一个函数作为累加器,数组中的值从左到右开始缩减,最终计算为一个值参数:callback (执行数组中每个值的函数,包含四个参数)previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))...

2019-03-14 14:00:52 169

转载 vue-router源码整体分析

vue-router源码整体分析前言思维导图目录结构使用入口插件开始实例化 VueRouter实例化 History前言在上一篇博客中,讲述了前端的路由机制。根据前端路由机制来解析vue-router源码,从而来理解它的原理。以下文章为转载内容,本人为了方便记忆,查看原文思维导图看图先整体了解一下思路。目录结构和流程相关的主要需要关注点的就是 components、history...

2019-03-07 17:38:10 1353

原创 前端路由路由机制

从前端路由学习vue-router原理(上)前言前端路由机制前端路由机制原理及两种实现方式一、History二、hashChange三、hash 和 history API对比前言早起的路由都是由后端提供,请求服务器通过url来reload页面。但是随着页面越来越多,服务器的压力也越来越大。而就目前最流行的SPA单页面应用架构路由则是由前端实现。单页面应用指的是应用只有一个主页面,通过动态替...

2019-03-07 15:08:31 752

原创 new操作符原理

javascript中的原型前言理解原型前言理解原型

2019-03-06 17:32:04 3776

转载 【前端词典】进阶必备的网络基础(下))

【前端词典】进阶必备的网络基础(下)前言目录五类 IP 地址跨域的原因及处理方式接口请求(假设没有同源策略)Dom 查询(假设没有同源策略)跨域解决方案一、JSONP二、CORS三、nginx 代理跨域CDN 带来的性能优化CDN的优势CDN 的工作模式关键技术CDN &amp; 静态资源CDN &amp; CookieHTTP 强缓存&amp;协商缓存强缓存 ( Cache-Control 和 ...

2019-03-06 14:03:57 204

转载 【前端词典】进阶必备的网络基础(上)

【前端词典】进阶必备的网络基础(上)前言入题1.五层因特网协议栈2.HTTP 与 HTTPS 的区别3.TCP/IP 协议4.三次握手和四次挥手5.DNS 域名解析6.五类 IP 地址7.跨域的原因及处理方式8.正向代理和反向代理9.CDN 带来的性能优化10.HTTP 强缓存&amp;协商缓存五层因特网协议栈 TOP一、应用层二、传输层三、网络层四、数据链路层五、物理层HTTP 与 HTTPS ...

2019-03-05 15:52:53 215

原创 linux常用命令

vim的使用命令vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。命令模式下::q 退出:q! 强制退出:wq 保存并退出:set number 显示行号:set nonumber 隐藏行号/apache 在...

2019-03-05 15:06:07 79

原创 call、apply、bind的区别

call、apply、bind的区别使用目的用法区别官方解释apply()call()bind()Example使用目的通过使用call、apply以及bind可以改变函数运行时this的指向。用法区别call跟apply的用法几乎一样,唯一的不同就是传递的参数不同,call只能一个参数一个参数的传入。apply则只支持传入一个数组,哪怕是一个参数也要是数组形式。最终调用函数时候这个数组...

2019-03-04 18:10:40 247

原创 快速上手gulp

快速上手gulp安装开始使用常用API练习安装参考官网开始使用1、项目根目录新建文件gulpfile.js.之后要做的事情就是在gulpfile.js文件中定义我们的任务了2、运行gulp任务。直接上代码:const gulp = require('gulp');const less = require('gulp-less');const watch = require('gu...

2019-03-04 16:41:28 164

原创 export和export default的区别

export和export default的区别共同点:1、均可以导出常亮、文件、函数以及模块等2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用不同点:1、在一个文件或模块中,export、import可以有多个,export default仅有一个2、通过export方式导出,import时要加{ },exp...

2019-03-04 15:42:56 1121

原创 js函数防抖和函数节流

函数防抖和函数节流概念使用场景概念函数防抖:就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。(在频繁触发的情况下,只有在停止触发的时候才会执行)函数节流:限制一个函数在一定时间内只能执行一次。目的:函数防抖和函数节流都是用来优化高频率执行js代码的手段简而言之就是在一定时间内,把高频率执行且效果一样的js代码优化掉使用场景1、函数...

2019-03-04 15:39:03 168

原创 javascript中的发布者与订阅者

javascript中的发布者与订阅者介绍发布者与订阅者模式实现发布—订阅模式功能代码封装取消订阅事件开发中遇到的发布--订阅功能全局--发布订阅对象代码封装理解模块间通信介绍发布者与订阅者模式之前分析vue双向绑定原理的时候,提到一个订阅器Dep,他主要负责收集订阅者,然后在属性变化的时候执行对应订阅者的更新函数。原理同javascript中的观察者模式javascript中的发布–订阅模...

2019-03-04 15:24:13 3225 1

原创 vue源码之双向绑定原理

vue双向绑定原理了解Object.definePropertyvue双向绑定了解Object.definePropertyvue使用有一段时间了。本着提升自己技术认知以及更好的使用vue的原则,来探究一下vue双向绑定的原理。了解过vue绑定原理的人都知道。双向绑定的原理是利用数据劫持结合发布者–订阅者模式的方式,通过Object.defineProperty来劫持各个属性setter、g...

2019-03-02 12:07:09 523

原创 vue组件通讯新姿势

$attrs 和 $listeners来源习惯的传值方式今天的主角嵌套组件内的应用小结来源阅读了大漠老师的文章:Vue组件数据通讯新姿势:$attrs 和 $listeners感觉受益匪浅,闲来无事,总结一下vue组件传值的方法习惯的传值方式啥也不说,先上图!!我们常见的组件之间的传值大概都跑不出这幅图,父子、兄弟之间进行通讯。父组件传值子组件:父组件通过props下发给子组件子...

2019-02-28 15:56:30 214 1

原创 探究promise原理

探究promise原理什么是promise常用的异步编程方案promise标准从里到外解剖promise流程分析then完整代码什么是promisePromise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一常用的异步编程方案回调函数事件监听发布/订阅(之后文章了解)promisepromise标准1.Promise 规范...

2019-02-27 17:16:06 186

空空如也

空空如也

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

TA关注的人

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