自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风火一回,一生不毁

风风火火走一回,走出一生不悔

  • 博客(342)
  • 资源 (23)
  • 收藏
  • 关注

转载 onChange事件详解

React 中,onChagne 事件是一个合成事件,由 ChangeEventPlugin 插件处理其监听。ChangeEventPlugin 插件会处理三类元素,select 和 file 监听 change 事件,input 和 textarea 监听 input 和 change 事件,checkbox 和 radio 监听 click 事件。

2024-05-15 19:49:23 56

原创 IndexDB学习

cookiecookie是保存在客户端本地的纯文本文件。其核心目的是为了解决服务器无法识别用户身份的问题。HTTP协议是无状态的cookie工作原理客户端发送一个请求到服务器服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部客户端保存cookie,之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部服务器返回响应数据可以在浏览器调试栏中的Headers和Cookies中查看。cookie的属性属性项

2021-07-16 00:41:20 1873 1

原创 js校验远端图片是否存在

js校验远端图片是否存在,因为图片存在于服务器,是异步加载,所以需要使用Promise。 const checkImgExists = (imgurl) => { return new Promise((resolve, reject) => { const ImgObj = new Image(); // 判断图片是否存在 ImgObj.src = imgurl; ImgObj.onload = (res) => { res

2021-03-02 15:15:49 910

原创 tapable详解

tapable详解tapable是webpack内部使用的一个流程管理工具,主要用来串联插件,完善事件流执行。1.安装tapableyarn add tapable2. 常用hooksimport { SyncHook, SyncBailHook, SyncWaterfallHook, SyncLoopHook, AsyncParallelHook, AsyncParallelBailHook, AsyncSeriesHook, A

2021-01-25 16:20:22 3682

原创 js隐式转换

js隐式转换js基础数据类型:string、number、boolean、null、undefined、symbol当运算符在运算时,如果运算符两边的数据类型不一致,那么CPU就无法进行计算。js的编辑器会自动将运算符两边的数据转换为同一类型,从而让计算机识别并可以进行计算,这一转换过程由编译器自动自行,不需要程序员手动操作,所以称之为隐式转换。隐式转换规则字符串转换:字符串 + 变量;所有与字符串相加的基础变量都将转换为字符串。例如:“”+变量 //将变量转换为字符串number

2020-07-07 09:56:26 525

原创 call、callee、caller详解

callcall用于改变函数指向。call是Funcrion.prototype的属性方法function add(a, b) { console.log(this); return a + b;}add(1, 2); //this=window,严格模式下为undefinedadd.call({ name: "新指向" }, 3, 4) //this={ name: "新指向" }calleecallee主要用于代替函数名,降低耦合性。callee是argu

2020-06-04 16:11:24 2520

原创 Babel 7

Babel-7babel是一个工具链,其主要用于将ES5以上对的版本代码转化为向下兼容的JavaScript语法。本文是针对babel7.10.0讲解的创建测试项目mkdir babel-testcd babel-testnpm init在babel-test根目录下创建.babelrc文件,用于配置babel。babel命令会从当前编译文件依次向上查找,直到找到.babelrc或babel.config.js为止。在根目录下新建source-code目录用于存放源码。

2020-06-02 16:54:19 818

原创 Egg简介

Egg前言Egg.js 为企业级框架和应用而生。基于Koa开发封装,性能优异,内置多进程管理,具有高扩展性,且提供了基于Egg定制上层框架的能力,帮助开发团队降低了开发维护成本。约定先于配置,相较于express更加灵活可配。KoaKoa是Express原班人马导致的,致力于web应用和API领域更小,更丰富的web框架。其和express设计风格类似,底层采用同一套HTTP基础库。koa采用中间件洋葱图,所有请求经过一个中间件时均会被执行2次,可以方便进行后置逻辑处理,而express中

2020-05-28 20:00:00 5629

原创 MYSQL SQL拼接工具

/** * * @param {*} type * @param {*} fields [{distinct:false,field:字段名,value:字段值},...] * @param {*} tableName * @param {*} where [{field:条件字段,relation:关系,value:条件值}] * @param {*} limit {bigin:起始数,end:结束数} * @param {*} orderBy [{field:排序字段,dir

2020-05-24 23:11:47 695

原创 React Hooks

React Hooks前言react hooks是react 16.8.0版本开始推广的。class声明的组件我们称之为有状态组件,function声明的组件我们称之为无状态组件。有状态组件拥有自己的状态和生命周期,在复用组件时我们需要考虑复用时是否对其自身状态造成影响。而函数组件数据全部依赖于props传入,更易管理。有状态组件通常我们数据初始化在componentDidMount生命周期,数据更新需要在componentDidUpdate再次重置自身状态。当项目复杂化后,这部分的代码维护容易

2020-05-20 19:26:07 767

原创 面试集锦(五)

1.宏任务和微任务js是一门单线程语言,所以同一时间只能执行一个任务。为了防止主线程不阻塞,开发者提出了事件循环(Event Loop)。1.1任务执行的原则:js将任务分为了同步任务和异步任务。同步任务都在主线程上执行,形成一个执行栈。异步任务会进入到一任务列表注册他们,一旦异步任务有了执行结果,则将其放到一个任务队列中。当同步任务执行完成后,此时主线程空闲,则将异步任务队列放入执行栈中,依次执行。1.2 宏任务每次执行栈执行的的代码都可以看做一个宏任务。浏览器为了能够是js内部的

2020-05-12 19:40:56 386

原创 React教学(1)

React教学(1)React产生背景React 是Facebook 在2013年推出的一款前端框架。当时Facebook的开发者在实现首页状态栏的时候,要实现当前好友请求数、消息列表、状态列表3者的展示。发现当有一条新的消息出现时,不能及时的刷新显示的数字,点开一条新的消息也不能立即更新消息数字。问题出现的原因:传统的UI操作需要关注的细节太多了。应用程序的状态又太过分散在各处...

2020-04-13 21:42:57 752

原创 面试集锦(四)

1.HTTPHTTP协议HTTP详情可参考:https://www.cnblogs.com/qdhxhz/p/8468913.htmlhttp1.0、http1.1、http2.0的区别http1.1开始支持长连接(keep-alive),http1.0每次请求完成后就会断开连接。http1.1支持只发送header信息,节约了宽度。http1.0不支持http1.1支持host域,...

2020-04-07 18:10:00 254

原创 面试集锦(三)

面试总结(三)1.语义化HTML中不同的元素代表不同的含义,使用具有含义的元素来书写HTML文档,即是语义化。选择合适的语义标签搭建的HTML文档,不仅便于开发着阅读、维护,也能让浏览器爬虫技术轻松解析。可访问性、可检索性、国际化、复用性。常见的h5语义化标签:https://blog.csdn.net/mafan121/article/details/80649634注意事项:...

2020-04-03 11:50:07 238

原创 vscode debug模式配置

vscode可以通过配置debug模式来实现断点调试。1.浏览器部分代码调试下载Debugger for Chrome插件配置如下json信息:{ "type": "chrome", "request": "launch", "name": "Launch Chrome", "url": ...

2020-03-25 15:58:20 10953

原创 css样式优先级

样式优先级CSS样式分为内联样式和外部样式,一般情况下:内联样式的优先级大于外部样式。即style样式>id选择器>class选择器>元素选择器。例如:.on{ width:20px; height:20px; line-height:20px; font-weight:bold; background-color: #BCC029;}.person-num&...

2019-12-13 15:52:07 606

原创 Vue filter详解

Vue filter源码详解1.解析表达式以reportDate | DFormat('YYYY-MM-DD') | SDefault为例。parseFilters 解析函数位于node_modules/vue/src/compiler/parser/filter-parser.js。主要作用是将表达式转换为可立即执行的函数字符串。//匹配任意非空字符、)、.、+、-、_、$、]//排除...

2019-12-09 19:24:16 980

原创 Vue入门

Vue入门1.Mac下快速搭建Vue项目sudo npm install -g vue //下载vuesudo npm install -g vue-cli //下载vue-cli脚手架vue init webpack VueTest //用脚手架创建VueTest项目项目创建成功后,进入项目目录,tnpm run dev即可启动项目。问题描述mac下出现:bash...

2019-12-05 14:22:13 394

原创 树结构布局

树结构布局前言本文讲解如何实现图形化树结构布局。布局规则:根节点始终处于画布中间同级节点不能相互重叠父节点永远处于子节点的水平中间位置准备工作以上图为例进行树结构布局设计,我们以每个节点的中心位置作为节点坐标。width:画布宽度nodeWidth: 节点的宽度nodeHeight: 节点的高度,levelHeight: 节点间的垂直间距(即每层间的垂直距离)dis...

2019-12-02 18:11:20 1348 5

原创 常见的十大排序算法详解

常见的十大排序算法详解性能对比名词解释n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存稳定性:排序后2个相等键值的顺序和排序之前它们的顺序相同测试数组:arr: [2, 48, 4, 19, 27, 5, 14, 36, 38, 44, 3, 46, 47, 50, 26]冒泡排序算法思想:从数组头部...

2019-11-29 19:02:09 361

原创 React 深入理解

React 深入理解1.1 React父子组件传参父组件向子组件传参:在父组件中为子组件添加属性,在子组件中通过this.props.属性名获取。子组件向父组件传参:在父组件中为子组件添加事件属性,在子组件中通过this.props.事件名(参数),通过回调函数的方式将参数值传递给父组件。兄弟组件传参:兄弟组件无法直接进行参数传递,这时就需要用到状态提升的方式,将兄弟需传递的属...

2019-09-11 14:18:45 530

原创 面试集锦(二)

面试集锦(二)1.React相关知识1.1 react生命周期react生命周期分为三个阶段:装载过程(Mount)、更新过程(update)、卸载过程(unmount)。参考:https://blog.csdn.net/mafan121/article/details/779653791.2 react父子组件传参父组件向子组件传参:props。在父组件中向子组件添加属性,子组件...

2019-08-29 15:25:52 193

原创 cookie的使用

cookie的使用1.1 cookie的原理HTTP协议本身是无状态的,一旦客户端和服务端完成数据交换后,连接就会断开,下次请求则会重建连接。这也就意味着服务器无法判断用户身份,每次请求都需要进行身份验证。cookie原理便是浏览器存储身份验证的唯一标识,然后发送给服务端,让服务端可以根据这个标识确认用户是否已经验证通过了。cookie是一个很小的文件,是浏览器存储在本机上的。它是一个纯文本...

2019-08-25 13:07:25 271

原创 页面左右布局

页面左右布局例如:现有一个页面,需要左侧200px,右侧自适应页面宽度。页面代码如下:import React, { Component } from 'react';import styles from './CssLayout.less';export default class CssLayout extends Component { constructor(prop...

2019-08-24 22:03:41 2625

原创 js字符串转函数

js字符串转函数对于函数型的字符串,我们想要将其转换为一个函数然后执行,有2种常用的方法。1.eval()eval()具有可以解析表达式的特性,所以可以利用这一特性将字符串解析为一个函数。 let funcStr = "function test(value){alert(value)}"; let test = eval("(false || "+funcStr+")"); t...

2019-07-10 15:24:22 27127 4

原创 antd多选下拉框一行展示

antd多选下拉框一行展示我们都知道antd的select多选时,如果下拉框宽度不足,则自动浮动到下一行将下拉框撑大,但是这回影响到页面的整体布局。我们期望的效果是,下拉框只显示一行的值,超出一行的部分自动隐藏。下面有2种方案来实现这个效果。1.利用浮动原理设置下拉框的最大高度为一行的高度,然后超出的部分隐藏。 .ant-select-selection--multiple { ...

2019-06-15 13:48:11 10410 2

原创 神奇的css

1.多行文本省略失效说明:使用多行文本显示省略号样式时,-webkit-box-orient: vertical;会被浏览器自动过滤。解决方案用注释打开autoprefixer属性,然后关闭。如下:.line-ellipsis-2{ display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ...

2019-02-20 14:22:08 337

原创 js分组(group by)

对数据进行分组,类似sql的groupBy。原理:遍历数组,将符合条件的数据放在一起,最后返回一个分组后的二维数组。//分组export const groupBy = (list, fn) => { const groups = {}; list.forEach(function (o) { const group = JSON.stringify...

2018-10-26 17:17:18 33171 1

原创 js防抖和节流

js防抖和节流应用场景对于一些会频繁触发的事件,例如scroll、resize、keydown、keyup、mousemove等,如果正常绑定这些事件的话,那么可能在短时间内会多次连续的触发这些事件,如果这些事件中含有dom操作的话就会对浏览器造成相当大的负担。对于这一类可能影响性能的事件,就需要做防抖动或者节流处理。防抖动定义:在一段时间内,多次触发事件后,事件函数只...

2018-09-04 09:51:33 994

原创 canvas详解(3)-模糊问题

canvas详解(3)-模糊问题1.模糊的原因canvas绘图理论上应该是清晰的,但是有些屏幕上看到的确是模糊的,究其原因有3点:css样式影响canvas绘图是基于自身的宽高设置,必须明确指定宽高,不能使用百分比。如果出现线条锯齿状原因,一般都是因为,canvas的css样式放大了原本的canvas图形导致的。例如:<canvas id="test" wid...

2018-08-13 10:48:17 2909

原创 canvas详解(2)-事件处理

canvas详解(2)-事件处理上一章我们讲解了canvas的基本原理应用,这一章主要讲解一下事件如何处理。 canvas详解(1)-原理canvas因为是画布的原因,实际上我们可以将它当做一张图片,所以在html中,无论这个canvas包含多少元素,多少图形,他都只有一个tag显示。那么它当中的图形事件也只能添加到canvas元素自身上了。既然所有的的事件都只能添加到canvas元素...

2018-08-13 10:35:08 4400

原创 canvas详解(1)-原理

canvas详解(1)-原理原理canvas本身并不具备绘画能力,它本身只是一个画布,是一个容器。绘图能力是基于html5的getContext("2d")返回的CanvasRenderingContext2D对象来完成的。const canvas = document.getElementById("payAbilityLoginTree");//获取canvas dom对象...

2018-08-13 10:24:51 8068 2

原创 js浮点数加减乘除

js浮点数加减乘除js浮点数的加减乘除存在着严重的bug,例如:在google浏览器下,0.1+0.2=0.30000000000000004;这完全不是我们想要的结果。 对于这一问题的解决方案就是重写浮点数的加减乘除方法,其原理是现将浮点数转换为整数。进行加减乘数,再除以相应的倍数,使之成为对应的浮点数结果。原理浮点数的加减乘数之所以会出现bug,跟javascript...

2018-08-02 10:52:08 2310

原创 数字每3位逗号隔开

最近遇到一个需求需要将数字每3位逗号隔开。 例如:1000 => 1,000故书写了如下方法://数字处理为每3位逗号隔开export const dealNumber = (num) => { if (num != 0 && num) { num = num + ""; let decimalsStr = ""; ...

2018-07-27 14:03:14 5702

原创 面试集锦(一)

1.优先级var z=1,y=z=typeof y;console.log(y);//string 由于typeof的优先级大于=,所以先执行y=typeof y,返回结果'undefined'。之后的赋值操作从右往左依次执行。所以结果为'string'2.执行顺序var a = 'glabol';function test(){ console.lo...

2018-06-11 17:06:08 304

原创 H5新特性

H5新特性HTML是用来表示一个网页架构的,其中的语义标签便是骨架。HTML5是一个新的网络标准,他不在遵循SGML(标准通用标记语言),所以不在需要DTD的声明。1 基础语义标签:<command>定义命令按钮</command><datalist>定义可选数据列表,与input配合可实现下拉框</datalist><...

2018-06-11 11:36:14 4210

原创 npm中--save-dev和--save的区别

npm中–save-dev和–save的区别1.常用几个参数-g:将模块安装到全局环境。--save:将模块安装到项目node_modules目录下,并在package.json的dependencies节点写入依赖。--save-dev:将模块安装到项目node_modules目录下,并在package.json的devDependencies节点写入依赖。--produ...

2018-06-04 10:52:48 871

原创 CSS画三角形

CSS画三角形1.实心三角形.triangle { margin: 20px auto; width: 0; height: 0; border-width: 30px; border-style: solid; border-color:...

2018-04-12 13:11:02 617

原创 ThinkJs入门

TinkJs入门本文是以thinkjs3.0版本为参照讲解的,如有不理解的部分,请参照:https://thinkjs.org/zh-cn/doc/3.0/create_project.html。1.项目创建全局安装thinkjs$ npm install -g think-cli创建并执行项目$ thinkjs new demo;$ cd demo;$ n...

2018-02-12 10:11:28 5204

原创 可编辑div在光标位置插入指定内容

可编辑div在光标位置插入指定内容//在光标位置插入内容insertContent(content) { if (!content) {//如果插入的内容为空则返回 return; } let sel = null; if (document.selection) {//IE9以下 sel = document.select

2018-02-07 15:19:41 6558 12

React谷歌调试工具

react开发调试工具,限于谷歌浏览器。

2017-05-10

bootstrapValidator

最适合bootstrap3的校验插件。

2016-12-29

websocket学习

一个简单的websocket介绍、学习ppt,希望能对你有所帮助。

2016-11-23

zTree.all.js

jquery.js,zTree.js,json树结构操作的javvscript资源文件,想要熟练使用还得结合官网API

2016-03-15

json对象解析工具

json对象转字符串,字符串转json对象。注意不能转换循环对象。

2016-03-04

json可视化工具

对于json字符串,很多开发工具都能展示,但是却不能可视化json字符串,让他更好理解。这里提供一个json的可视化工具,可以支持json数据的格式化,可视化。

2016-03-04

jquery.edatagrid.js

edatagrid.js:jquery的可编辑列表,网上找了很久都没找到,现在把它分享出来,希望能给大家带来便利。

2016-01-26

ember.js资源包

ember.js,一个构建“雄心勃勃”的应用程序的javascript框架。相对于angularjs稳定性更高一些。基于模版的开发方式让你重新认识编码方式。此处仅提供ember.js和handlebar.js资源文件。jquery请自行下载。注意ember只支持1.8以上版本的jquery。

2016-01-11

SVN客户端安装程序

SVN客户端安装版,配合SVN服务端可实现局域网内的资源共享,操作简单适用性高,是程序员的必备工具。资源放这里了,需要的放心下载,对了这是64位的,别下错了哟。

2015-12-14

SVN服务端安装版

SVN服务端安装版,资源共享,局域网的不二选择,SVN操作简单,使用方便,虽然没有git强大,但对于小型开发却非常有利,建议使用。

2015-12-14

class文件查看工具

在eclipse中我们可以使用jad来反编译源码,可以查看到部分class文件的源码类容,但我们自己写的项目编译的class文件确实不能之间查看的。为了能够看到我们修改的项目是否编译成功。那么class文件查看工具就能起到作用了。希望这个工具能为大家带来更多的便利。

2015-12-14

eclipse-maven插件

这里贡献一个64位的eclipse-maven插件,希望大家能够用的到,同时也希望大家能共享一些你们的有用资源。

2015-11-10

apache-maven 64位

为了方便广大java开发者,无私贡献一个maven64位的下载资源,希望广大博友能用得到。也希望各位支持我的博客。

2015-11-10

jad反编译工具和jadclipse插件

查看java中class文件代码。使被编译或打包后的源码能重现在我们的眼前,这有助于我们更深层次的学习。

2015-11-06

raphael中文API

本文仅对官网API进行了翻译,是英语差参考者的福利

2015-03-31

js绘图工具Raphael插件

Raphael是一个很小的JavaScript库,它可以在网页中实现绘制各种矢量图、各类图表、以及图像裁剪、旋转、运动、动画等等功能。其兼容的浏览器有:Firefox 3.0+、Safari 3.0+、Chrome 5.0+、 Opera 9.5+、IE6.0+。

2015-03-31

WebService简介

WebService学习,java端通过Axis2,Cxf发布WebService的应用

2015-03-04

W3C简单介绍及应用

简单的W3C入门基础,方便大家对W3C有一个整体的了解

2015-03-04

win8.1如何获得管理员权限删除文件夹

本资源提供了win8.1获取管理员权限并使用该权限删除文件夹的教程,能清晰明了的帮你解决win8文件难以删除的问题。本人尝试了很多种方法,只有该方法有效,值得借鉴。

2014-11-04

Tomcat安装步骤

本文档为初学者提供Tomcat的安装指导,方便初学者使用Servlet学习,其中步骤详细,相信是初学者的好帮手。

2014-10-11

Oracle数据库的安装

本文件为方便初学者安装Oracle数据库提供一个参考教程,望能给广大学习者一定的帮助。

2014-10-11

HTML的学习即应用

本资源概括了HTML的相关知识点,能方便有一定基础的同学复习使用,其中虽没有例子,但知识点还是比较全面的

2014-10-05

CSS基础便签

CSS基础学习便签,可方便查找CSS的应用和选择器的选择。本资源只为更好的学习,希望能带给大家更多的方便

2014-10-05

空空如也

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

TA关注的人

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