自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皖林的博客

在某个年纪之前,你可以靠透支身体,小聪明和老天给你的运气一直取巧地活着。然而到了某个年纪之后,真正能让你走远的,都是自律,积极和勤奋。...

原创 对redux的认识(源码深度解读)

用redux写过一些小项目,感觉有段时间不用快要忘记。所以写下我对redux的理解(和react-redux结合使用)。作为笔记。redux版本是3.6.0。react-redux版本是5.0.4。首先打开github的redux项目,在源码中,主要有以下文件: 这也是redux的组成部分。ut...

2017-06-05 23:25:34 476 0

原创 React-native错误,更新中......

1、使用abd reverse tcp:8081 tcp:8081 react-native run-android最后一行报错。error: unknown host service找到5037端口,关掉对应的pid即可。netstat -aon|findstr "5037&quo...

2017-02-17 14:34:14 5324 2

原创 babel-polyfill与babel-plugin-transform-runtime

babel-polyfill babel-polyfill在应用中会模拟一个es2015+的环境,所以使用了babel-polyfill后可以使用内置对象如Promise和WeakMap,静态方法如Array.from和Object.assign,实例方法如Array.prototype.inc...

2018-07-22 18:16:06 4019 0

原创 大文件断点续传

win10 node: v8.2.1 npm: v5.3.0 multer: v1.3.0使用1.由于对multer v1.3.0做了修改,所以不可以通过npm install multer这种形式,需要使用到修改过multer包去覆盖原来的。 2.对于文件上传的接口,比如/upload,需要携...

2017-11-18 11:56:02 4838 1

原创 Javascript--Event Loops

简介Javascript是单线程的。而在主线程之外,为了协调事件、用户交互、脚本、渲染、网络等,用户代理(user agents,一般指浏览器)必须使用一种机制来保证程序的正确运行。这种机制就是事件循环(event loops)。当主线程(栈)执行完毕后,就开始事件循环。事件循环有两种形式,分别是...

2017-10-18 00:23:16 379 0

原创 从源码角度分析nodejs如何处理一个HTTP请求

使用nodejs创建一个http服务器是非常简单的。突然想到同学的一句话,“经济基础决定上层建筑”。这句话似乎是个万金油,在任何事情上都可以评论一二。所以这种简单其实是因为nodejs在内部帮我们封装了很多,隐藏了非常多的细节。本文旨在深入到这些细节,拨开这个面纱。为了行文方便,每段代码都加了标志...

2017-09-18 20:58:42 1385 0

原创 express源码解析

占坑。

2017-09-14 10:34:02 340 0

原创 Function.prototype.bind及其polyfill分析

Function.prototype.bind执行会返回一个新的函数,并将this关键字设置为指定的值。并可以在执行该返回的函数之前传入参数。语法fun.bind(thisArg[, arg1[, arg2[, ...]]]) thisArg:表示返回的函数中this的指向。 [, arg1[, ...

2017-09-13 10:01:58 457 0

原创 selenium初探

这一周导师让我研究selenium。selenium支持很多语言,而我使用的是js来测试。需要安装selenium-webdriver: ^3.5.。基础篇我参考了很多文章,这里列下其中一下: http://jeremy-xu.oschina.io/2016/05/22/web%E7%95%8C%...

2017-08-20 18:40:50 755 0

原创 有趣--等额本息还款

最近在知乎发现了一个有趣的事情。说一个我自己的事儿,吹吹牛:) 某行信用卡专员总打电话过来,希望提供一个贷款额度给我,不胜其扰,又不忍直接拒之。某次电话又来,决定聊败她。卡专员:先生,我行为您提供5万的贷款额度,24个月分期还清,月还款仅2400元。 我:对不起,我不需要这个产品,谢谢。 卡专员:...

2017-08-20 15:56:44 506 0

原创 websocket心跳的实现(包括全部代码)

本文主要讲的是如果设计websocket心跳已经需要考虑哪些问题。前言在使用websocket的过程中,有时候会遇到客户端网络关闭的情况,而这时候在服务端并没有触发onclose事件。这样会: 多余的连接 服务端会继续给客户端发数据,这些数据会丢失 所以就需要一种机制来检测客户端和服务端是否处于正...

2017-08-12 16:35:48 32335 10

原创 简化redux中的action和reducer

如何让action和reducer更简单,这就是本文所学需要记录的。可直接跳到改进部分。前言最近做的项目中,也使用了redux。redux是基于纯函数的,为了保证其纯度,它的reducer的要求是S’ = f(S)的这种形式。但是在实际项目中,我们有很多网络请求,那么要求reducer的形式是S’...

2017-08-12 11:32:21 2654 0

原创 我的项目react-native-meituan总结与反思

react-native-meituangithub地址:https://github.com/yuwanlin/react-native-meituan.git 跨平台app。持续更新。目前是v1版本。通过这个小项目,掌握了react-native的一些组件的用法。本项目react-nativ...

2017-06-05 23:24:33 1319 0

原创 我的项目react-bookstore总结与反思

react-bookstore线上地址:https://react-bookstore.herokuapp.com github地址:https://github.com/yuwanlin/react-bookstore学习了react相关技术,需要贯通一下。所以有了这个。会持续更新。项目不复杂...

2017-05-16 17:58:32 769 0

原创 brew安装特定版本flow,解决问题!

在atom+react-native项目中安装了nuclide。然而使用flow的时候出现了问题。$ brew -v Homebrew 1.2.0$ flow version Flow, a static type checker for JavaScript, version 0.45.0$ f...

2017-05-06 18:03:51 7248 2

原创 webpack热模块替换(HMR)/热更新

这是一篇关于webpack热模块替换的最简单的配置(不需要react),也称作热更新。

2017-03-17 22:15:45 14196 0

原创 ES6学习笔记之class

概述ES6引入了class以接近传统的面向对象(java、c++)语法。我觉得这不是很有必要。因为在继承方面它和java/c++完全不一样,这样会对新手可能会造成困扰(虽然java我已经忘掉了)。实际上,class可以看做一个语法糖,它的绝大部分功能都可以由ES5做到,在此基础之上,增加了一些功能...

2017-03-16 19:11:50 375 0

原创 我的webpack,持续更新......

压缩js使用自带的webpack.optimize.UglifyJsPluginconst webpack = require('webpack'); module.exports = function(env) { return { entry: { ...

2017-03-13 22:54:23 2270 1

原创 ES6学习笔记之Symbol

参考自:http://es6.ruanyifeng.com/#docs/symbol概述 Symbol是ES6新引入的一种原始数据类型。它是JS语言的第7种数据类型。前6中是number、string、boolean、undefined、null、object。 let s = Symbol();...

2017-03-13 17:52:33 348 0

原创 angularjs仿拉勾网webapp总结与记录

这是慕课网上的实战课程,使用的技术栈有bower+less+angular1.x+gulp。没有涉及到后端,数据是模拟的json数据。 gulp 其中gulp的配置在这里。 less 关于less部分,只使用了一些最基础的语法。如下: 文件引用 使用@import。 ...

2017-02-25 23:29:22 4079 6

原创 指令中的scope

一般而言,指令配置如下://headBar.js angular.module('app') .directive('appHeadBar', function() { return { restrict: 'A', ...

2017-02-25 21:57:23 744 0

原创 gulp插件

这是我用的一个。 "devDependencies": { "gulp": "^3.9.1", "gulp-clean": "^0.3.2", "gulp-concat&qu...

2017-02-25 10:20:06 908 0

原创 modernizr

HTML5Shiv允许就浏览器识别出HTML5元素,并可以为其添加样式—-它只是简单地创建了HTML5对象,让CSS和JavaScript可以应用在元素本身。Modernizr做了同样的事情,并且在此基础上还添加了特性检测。HTML5Shiv会使像<video>这样的标签生效,但是它并...

2017-02-25 09:42:05 520 0

转载 ES6学习笔记之Generator 函数的语法

简介基本概念Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步应用》一章。Generator 函数有多种理解角度。从语法上,首先可以把它理解成,Gen...

2017-02-22 16:42:42 1199 0

转载 ES6学习笔记之Iterator和for...of循环

原文地址:http://es6.ruanyifeng.com/#docs/iteratorIterator(遍历器)的概念JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,...

2017-02-22 11:09:23 1352 0

转载 es6学习笔记之Promise

是的,很多东西都需要写下来。 原文链接:http://es6.ruanyifeng.com/#docs/promise含义Promise是异步编程的一种解决方案。相比于回调函数和事件,更好更强大。Promise一个承诺,保存着某个未来才会结束的事件的结果(通常是异步操作事件的结果)。Promis...

2017-02-21 18:27:19 830 0

原创 有趣的代码,持续更新...

1、原文链接// 我挺喜欢最上边的评论的,虽然我不知道是否正确 <script> var a = {n:1}; var b = a; a.x = a = {n:2}; // 可以更换 a.x = a = {n:2}看看 console.log(a.x);// --> un...

2017-02-19 23:30:21 2484 0

原创 React&RN关键点集锦,持续更新......

1、获取设备宽、高、像素比import Dimensions from 'Dimensions'; import PixelRatio from 'PixelRatio'; let totalWidth = Dimensions.get('wind...

2017-02-18 11:37:26 509 0

原创 JS常见代码块,持续更新......

个人使用过程中收集的…弄丢了几次,现在放到博客,更新中……1、拿到总的offsetLeftfunction getOffsetLeft(dom){ var actualLeft = dom.offsetLeft; var curr = dom.offsetParent; while(cu...

2017-02-17 19:18:13 1203 0

原创 React组件的生命周期

一个React组件被渲染的过程有三个阶段。这个过程就叫做组件的生命周期。每个React组件都会经历这个过程。为了使这个过程可操控,React提供了一些方法,在组件生命周期过程中,通过这些方法我们可以得到某个阶段发生的通知。这些方法就叫作组件的生命周期方法,它们按特定顺序被调用。所有React组件的...

2017-02-17 10:51:13 802 0

原创 ES6学习笔记二之数组的扩展

Array.from()Array.from() 方法从类似数组(array-like)或可迭代对象(iterable)创建一个新的数组实例(包括ES6新增的数据结构Set和Map)。Array.from(arrayLike[, mapFn[, thisArg]])如下是一个类数组的对象,Arra...

2017-02-17 00:03:52 352 0

原创 ES6学习笔记一之js发展、let、const、解构赋值

ECMAScript和JavaScript的关系?1996年11月,JavaScript的创造者—-Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能成为国际标准。次年,ECMA发布262号文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将...

2017-02-13 23:17:23 1685 0

转载 XSS跨站总结

简介:跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击通常指的是通过利用网...

2017-02-12 18:10:13 858 0

转载 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)

内核首先得搞懂浏览器内核究竟指的是什么。 浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或...

2017-02-09 14:31:46 2239 0

原创 前端性能优化的14条法则

文章是高性能网站建设指南(Steve Souders)的总结。 性能黄金法则: 只有10%~20%的最终用户响应时间花在了下载HTML文档上。其余的80%~90%时间花在了下载页面中的所有组件上。

2017-02-09 10:50:21 1827 0

原创 javascript模块化之CommonJS、AMD、CMD、UMD、ES6

这是一篇关于js模块化编程的总结记录 javascript模块化之CommonJS、AMD、CMD、UMD、ES6

2017-02-05 18:20:21 17334 10

转载 webpack学习笔记一

原文链接:https://segmentfault.com/a/1190000006178770?_ea=1088498 由于使用的是webpack版本是2.2.1,所以针对原文做了一些修改。 针对webpack2的修改部分和添加的部分在最底部,文中已经改过来了。 写在前面的话 阅读本文之前,...

2017-02-04 00:22:11 4273 0

原创 mongoose学习笔记一

名词解释Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力Model: 由Schema编译而成的假想(fancy)构造器,具有抽象属性和行为。Model的每一个实例(instance)就是一个document。document可以保存到数据库和从数据库返回。Instan...

2017-02-01 23:53:24 3518 0

原创 windows平台react-native && android安装错误Error EPERM

1、初始化项目react-native init newProject2、手机连上usb口,在手机上的开发者模式中打开usb调试,如果手机屏幕出现提示密钥消息,点击确定。3、对于Android5.0或以上的操作系统,在react-native项目根目录管理员运行abd reverse tcp:80...

2017-01-23 10:06:11 3072 1

原创 MongoDB关键点集锦(更新中...)

1、MongoError: server instance in invalid state undefined参考segmentfault的一个解答 看起来你用的是node-mongodb-native驱动。老版本确实有使用过DB作为顶级对象,不过现在的驱动通常建议把MongoClient用...

2017-01-19 22:05:51 779 0

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