Arlo

Results 93 issues of Arlo

## 逐行读取 readline 模块 readline 模块是一个流内容的逐行读取模块,通过 require('readline')引用模块。你可以用 readline 模块来读取 stdin,可以用来逐行读取文件流,也可用它来在控制台和用户进行一些交互。 ```js const readline = require("readline"); const rl = readline.createInterface({ // 监听的可读流 input: process.stdin, // 逐行读取(Readline)数据要写入的可写流 output: process.stdout }); rl.question("你如何看待 null-cli...

node

## 压缩 zlib 模块 在流传输过程中,为减少传输数据加快传输速度,往往会对流进行压缩。 HTTP 流就是如此,为提高网站响应速度,会在服务端进行压缩,客户端收到数据后再进行相应的解压。 Node.js 中的 Zlib 模块提供了流压缩与解压缩功能,Zlib 模块提供了对 Gzip/Gunzip、Deflate/Inflate、DeflateRaw/InflateRaw 类的绑定,这些类可以实现对可读流/可写流的压缩与解压。 ### 关于 gzip 与 deflate deflate(RFC1951)是一种压缩算法,使用 LZ77 和哈弗曼进行编码。gzip(RFC1952)一种压缩格式,是对 deflate 的简单封装,gzip = gzip 头(10 字节) + deflate...

node

## http 模块 > http 模块是 Node.js 中非常重要的一个核心模块。通过 http 模块,你可以使用其 http.createServer 方法创建一个 http 服务器,也可以使用其 http.request 方法创建一个 http 客户端。(本文先不说),Node 对 HTTP 协议及相关 API 的封装比较底层,其仅能处理流和消息,对于消息的处理,也仅解析成报文头和报文体,但是不解析实际的报文头和报文体内容。这样不仅解决了 HTTP 原本比较难用的特性,也可以支持更多的 HTTP 应用. ### http.IncomingMessage 对象...

node

![webpack](https://raw.githubusercontent.com/webfansplz/article/master/easy-webpack/webpack.jpg) ## 什么是 webpack ? > 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。 > webpack 就像一条生产线,要经过一系列处理流程后才能将源文件转换成输出结果。 这条生产线上的每个处理流程的职责都是单一的,多个流程之间有存在依赖关系,只有完成当前处理后才能交给下一个流程去处理。 插件就像是一个插入到生产线中的一个功能,在特定的时机对生产线上的资源做处理。 > webpack 通过 Tapable 来组织这条复杂的生产线。 webpack 在运行过程中会广播事件,插件只需要监听它所关心的事件,就能加入到这条生产线中,去改变生产线的运作。 webpack 的事件流机制保证了插件的有序性,使得整个系统扩展性很好。 --...

前端工程化

## Babel是什么?我为什么要了解它? ### 1. 什么是babel ? > Babel 是一个 JavaScript 编译器。他把最新版的javascript编译成当下可以执行的版本,简言之,利用babel就可以让我们在当前的项目中随意的使用这些新最新的es6,甚至es7的语法。 **为了能用可爱的ES678910写代码,我必须了解它!** ### 2. 可靠的工具来源于可怕的付出 August 27, 2018 by Henry Zhu > 历经 2 年,4k 多次提交,50 多个预发布版本以及大量社区援助,我们很高兴地宣布发布 Babel 7。自 Babel...

Babel

# 不要肆无忌惮地在你的项目中使用 ES78910 了~ > 如果我有故事,你有 star 吗~ ## 故事背景 在一次 code review 中,我在我们的项目(项目基于 vue-cli 3 创建)中找到了这句代码 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) ```js [1, 2, [3, 4, [5, 6]]].flat(Infinity); // [1, 2, 3, 4,...

### 什么是路由? > 路由这概念最开始是在后端出现的,在以前前后端不分离的时候,由后端来控制路由,服务器接收客户端的请求,解析对应的url路径,并返回对应的页面/资源。 > 简单的说 路由就是根据不同的url地址来展示不同的内容或页面. ### 前端路由的来源 > 在很久很久以前~ 用户的每次更新操作都需要重新刷新页面,非常的影响交互体验,后来,为了解决这个问题,便有了Ajax(异步加载方案),Ajax给体验带来了极大的提升。 > 虽然Ajax解决了用户交互时体验的痛点,但是多页面之间的跳转一样会有不好的体验,所以便有了spa(single-page application)使用的诞生。而spa应用便是基于前端路由实现的,所以便有了前端路由。 > 如今比较火的vue-router/react-router 也是基于前端路由的原理实现的~ ### 前端路由的两种实现原理 #### 1.Hash模式 > window对象提供了onhashchange事件来监听hash值的改变,一旦url中的hash值发生改变,便会触发该事件。 ```javascript window.onhashchange = function(){ // hash...

javascript

## koa-洋葱模型 **koa 最大的特点就是独特的中间件流程控制,也就是大名鼎鼎的“洋葱模型”。没图说个???** ![洋葱模型](https://raw.githubusercontent.com/webfansplz/article/master/meetKoa/4.koa-compose/onion.png) 我们可以很清晰的看到 一个请求从外到里一层一层的经过中间件,响应时从里到外一层一层的经过中间件。 就像我们往洋葱插入一根牙签,牙签从外到里经过一层层洋葱皮,到达"葱心",我们拔出来时,牙签从里到外经过一层一层洋葱皮。(我怀疑你在开车,但是...) **Talk is cheap,Show me the code。简单说就是,没代码说个???** 下面,我们来分析一波 koa-compose 源码 ```javascript /** * Compose `middleware` returning * a fully valid middleware comprised *...

node

### 仓库: [lazyload-Vanilla JavaScript plugin for lazyloading images](https://github.com/tuupola/lazyload) ### 源码实现: ```js /*! * Lazy Load - JavaScript plugin for lazy loading images * * Copyright (c) 2007-2019 Mika Tuupola *...

### 仓库: [ms -Tiny milisecond conversion utility](https://github.com/vercel/ms) ### 源码实现: ```js /** * Helpers. */ var s = 1000; var m = s * 60; var h = m * 60;...