自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手写 Promise.all

Promise.all = (iterators) => { return new Promise((resolve, reject) => { const len = iterators.length; if(!iterators || len === 0){ resolve([]); }else{ const result = []; for(let i = 0;i < len;i ++){ Promise.resolve(iterators[i

2021-09-01 15:29:39 147 1

原创 js中的&&和||

a&&b:先执行a,如果为true,则执行b并返回b的值;如果a为false,则返回a的值;a || b:先执行a,如果为true,则返回a的值;如果a为false,则执行b并返回b的值;

2021-05-24 15:07:18 127

原创 ES6—类和继承

类内部所有的方法都是定义在类的prototype属性上的。类内部定义的方法不可枚举。类prototype对象上的constructor属性指向类本身。constructor()方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。类和模块的内部,只有严格模式。super():super作为函数调用时,代表父类的构造函数。子类的构造函数必须执行一次super函数。super作为对象时,在普通方法中,指向父类的原型对象(区分实例);在静态方法中,指向父类。在子类普通方法中通过su.

2021-04-20 17:21:48 143

原创 ES6数组find()方法

indexOf( )这个方法返回找到值的索引,没有找到就返回-1。但这个方法需要严格匹配===,而且写法比较繁琐。some( )let a = [1, 2, 3, 4, 5];a.some(function matcher(p){ return p == "2";}); // true缺点:只能得到返回true/false。find( )let a = [1, 2, 3, 4, 5];a.find(function matcher(p){ return p == "2..

2021-04-08 16:52:35 2375

原创 echarts设置标签文字颜色可控

我们在使用Echarts构建图表的过程中,经常会使用到标签(label)功能,用来对图表进行一些标注。下面介绍如何设置标签文字的颜色可控化:······series: [{ label: { formatter: (params) => { const data = params.data; return data.key % 2 == 0? `{b1|${data.name}}\n{c|${data.value}}` //

2020-12-25 15:24:58 2912

原创 Webpack常用插件之TerserWebpackPlugin

TerserWebpackPlugin该插件使用 terser 来压缩 JavaScript。webpack.config.jsconst TerserPlugin = require('terser-webpack-plugin');module.exports = { optimization: { minimize: true, minimizer: [new TerserPlugin({ test: /\.js(\?.*)?$/i, //匹配参与

2020-11-06 15:27:09 5900

原创 更新npm上发布的包

STEP 1:修改包的版本号 我们可以通过 npm version <update_type>命令自动修改版本号,<update_type>为patch, minor, major其中之一,分别表示补丁,小改,大改 具体体现为: 对于"version":"x.y.z": 1.(补丁)修复bug,增加z 2.(小改)增加了新特性,但仍能向后兼容,增加y 3.(大改)有很大的改动,无法向后兼容,增加x 修改过后的版本号会在package.json中的versi

2020-10-20 13:55:23 327

原创 js设计模式—代理模式在缓存中的应用

这里以一个简单的乘法例子来说明代理模式在缓存中的应用:var mult = function(){ //首先定义一个乘法函数 var a = 1; for ( var i = 0, l = arguments.length; i < l; i++ ){ a = a * arguments[i]; } return a; }; mult( 2, 3 ); // 输出:6 mult( 2, 3, 4 ); // 输出:24现在加入缓存代理函数:var

2020-10-16 15:09:00 182

原创 display:inline-block属性的元素横向排列出现错位的解决办法

display:inline-block属性的元素横向排列出现错位的解决办法当属性为display:inline-block的元素横向排列时,可能会出现错位现象,此时我们可以设置这些元素vertical-align属性为middle,即可解决。

2020-09-21 15:07:00 884

原创 解决zsh中调用局部安装包出现“command not found:”的问题

zsh中调用局部安装的依赖包 在项目中如果不想全局安装某个模块,可以局部安装到本项目中,此时zsh调用本模块会出现“command not found”的问题。解决办法1、使用npx,调用局部安装模块。2、在package.json中scripts下加入该模块的启动命令,此时zsh会先将该模块的环境变量加入到全局变量中,可成功调用。...

2020-09-18 09:56:58 1151

转载 【Redux】实现createStore方法

Store提供了三种方法: store.getState() store.dispatch() store.subscribe()具体实现: const createStore = (reducer) => { let state; let listeners = []; const getState = () => state; const dispatch = (action) => { state = reducer(state,

2020-09-16 16:32:47 695

原创 【CSS】伪元素绑定事件

CSS中给伪元素绑定事件的方法1、第一步:给父元素添加 pointer-events:none;2、第二步:给伪元素添加 pointer-events:auto; //覆盖父元素pointer-events:none,响应事件

2020-08-14 16:26:16 1787 2

转载 CSS中属性的继承性

一、无继承性的属性1、display:规定元素应该生成的框的类型2、文本属性: vertical-align:垂直文本对齐 text-decoration:规定添加到文本的装饰 text-shadow:文本阴影效果 white-space:空白符的处理 unicode-bidi:设置文本的方向3、盒子模型的属性: width、height、margin 、margin-top、margin-right、margin-bottom、margin-left

2020-08-13 18:30:43 382

原创 React组件错误(error)收集方法

React组件错误(error)收集方法1、添加错误状态变量 在state中添加error变量,初始化为null。 this.state = { error : null }2、结合使用catch和setState()捕获错误对象,并保存在状态中 fetch( url ).then( result => console.log( result ) ).catch(e => this.setState({error : e}))3、当错误发生时,可以在render()方法中获取到s

2020-08-12 09:01:56 1477

原创 Jsx中条件渲染的三种方式

Jsx中条件渲染的三种方式1、if-else2、三目运算符 class App extends Component { render(){ return( <div>{ result ? <p>hello world</p> : null }</div> ); } }3、&&逻辑运算符 const result = true && 'Hello World'; console.log

2020-08-11 18:11:34 1323

原创 vue-router异步加载组件

当我们开发vue+webpack项目时,可能会发现打包出的项目js过大,严重影响了首屏页面的访问速度,这就需要利用vue路由的异步加载组件功能。异步加载组件在页面路由配置js文件中,避免在开头直接引入相关组件,当配置特定路由对应组件时再使用import引入对应组件。{path: '/app',component: () => import('../pages/application.vue')}**报错unexpected token的解决办法:**项目安装babel-plugin-

2020-07-16 16:49:48 1614

原创 webpack-dev-server打包项目

webpack-dev-server打包生成的 js 文件在哪?在内存中! 由于我们每次保存页面都会导致重新打包文件,因此为了更快速的构建,webpack-dev-server 把生成的js文件放到内存中,众所周知在内存中的速度是十分快的。插件: html-webpack-plugin这个插件的通常用法是根据指定的index.html模板生成一个存在于内存中的index.html,它会自动引入webpack-dev-server打包出的在内存中的bundle.js文件,在我们开发的时候,可以去请求这个

2020-05-27 01:09:56 507

空空如也

空空如也

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

TA关注的人

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