赞了文章2020-04-27
export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default命令只能使用一次。本质上,export default就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字。
赞了文章2019-04-12
最近在看一些NPM库的时候总是看到各种哈希签名算法,之前工作中也有用到过签名算法,但并没有深入理解过其中的原理,于是找了点资料稍微了解了一下,总结了这篇文章。
发布了文章2019-01-07
优势性能收益:浏览器加载图片、decode、渲染都需要耗费资源,懒加载能节约性能消耗,缩短onload事件时间。节约带宽:这个不需要解释。通常,我们在html中展示图片,会有两种方式:img 标签css background-imageimg的懒加载实现img有两种方式实现懒加载:事件监听(sc...
发布了文章2018-11-30
The vm module provides APIs for compiling and running code within V8 Virtual Machine contexts. The vm module is not a security mechanism. Do not use it to run untrusted code. The term "sandbox" is used throughout these docs simply to refer to a se...
赞了文章2018-11-13
分层是解决软件复杂度很好的方法,它能够降低耦合、增加复用。典型的java后端开发大多分为三层,几乎成了标准模式,但是node社区对于分层的讨论却很少。node后端是否需要分层?如何分层?本文将从个人的角度提供一些思路。
赞了文章2018-11-09
从window上转换到Mac还是有一些不习惯的地方,今天就一直在弄这个远程服务器的操作的软件,先是费了好大劲下载了SecureCRT,又是破解弄了半天发现上传下载用不了,很是伤心。一直想找一个类似xShell的软件,我放弃了,最后定为到iTerm配合rz和sz来实现上传下载。先说...
赞了文章2018-10-17
Trie 字典树,一种用空间换取时间的树形数据结构,主要特点是利用字符串的公共前缀来挺升查询性能。比如一组字符串 ["abc","ab","bd","dda"] 它的字典树结构如下:
赞了文章2018-10-17
现在的SPA开发中,提到数据(状态)管理不得不提Redux和Vuex,它们都是基于Flux思想的前端状态管理解决方案。但本文的重点不是介绍Redux或Vuex的技术细节,而是基于真实的业务场景谈谈在不同的场景下该如何管理数据。
发布了文章2018-10-16
本文基于http Range Requests协议,实现了分片下载的功能。 使用场景包括基于浏览器的流文件片段传输、基于客户端的分片下载等。 原理 http通过Range Requests相关的header,可以与服务器进行协商,实现分部分的请求。 这里就不细说具体协议内容了,具体可以参考这两...
赞了文章2018-10-11
前段时间做了一个基于命令行的效率工具,可以自动生成组件的模板代码。自己用起来还觉得挺好,但在组内案例几次后大家都不愿意用,究其原因还是命令行工具使用起来门槛有点高,不方便。由于组内已经统一使用VS Code进行开发了,于是决定研究下VS Code的插件开发,让...
赞了文章2018-10-08
js单线程和无阻塞io让它在处理高并发时有着得天独厚的优势,node应运而生,从此js进入到后端开发的行列。但是目前js在后端开发领域,并没有得到广泛和深度的应用。原因可能有这几点:
赞了文章2018-09-26
虽然每天都在用webpack,但一直觉得隔着一层神秘的面纱,对它的工作原理一直似懂非懂。它是如何用原生JS实现模块间的依赖管理的呢?对于按需加载的模块,它是通过什么方式动态获取的?打包完成后那一堆/******/开头的代码是用来干什么的?本文将围绕以上3个问题,对...
赞了文章2018-09-21
webpack 的出现为前端开发带来翻天覆地的变化,无论你是用 React,Vue 还是 Angular,webpack 都是主流的构建工具。我们每天都跟它打交道,但却很少主动去了解它,就像写字楼里的礼仪小姐姐,既熟悉又陌生。随着项目复杂度的上升,打包构建的时间会越来越长。终于有...
发布了文章2018-09-13
背景 通常,我们在需要保证代码在多个异步处理之后执行,会用到: {代码...} Promise.all可以保证,promises数组中所有promise对象都达到resolve状态,才执行then回调。 这时候考虑一个场景:如果你的promises数组中每个对象都是http请求,或者说每个对象包含了复杂...
赞了文章2018-09-10
目前最流行的两大前端框架,React和Vue,都不约而同的借助Virtual DOM技术提高页面的渲染效率。那么,什么是Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解Virtual DOM的创建过程,并实现一个简单的Diff算法来更新页面。本文的内容脱离...
赞了文章2018-09-10
目前最流行的两大前端框架,React和Vue,都不约而同的借助Virtual DOM技术提高页面的渲染效率。那么,什么是Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解Virtual DOM的创建过程,并实现一个简单的Diff算法来更新页面。本文的内容脱离...
发布了文章2018-09-04
通常我们在做静态文件服务的时候,首选CDN。当文件内容需要经常变动时,则可以采用nginx代理的方式。node本身也可以搭建静态服务,用koa static可以很容易实现这个功能。
发布了文章2018-07-29
最近在团队内做了一次vue原理分享,现场手写了一个乞丐版mvvm,这里记录一下这个mvvm实现的过程。 源码:[链接] 这个mvvm是基于发布订阅模式实现(也是vue本身的实现原理),最终达到的效果如下: 使用方式也跟vue一样: {代码...} 实现很简单: {代码...} 原理: 最...
发布了文章2018-06-12
最近在项目内部创建了一个vue组件库,希望通过组件库的形式,统一项目中组件的逻辑和样式,让代码的复用性更强。 这篇文章主要是梳理组件库的整个结构和构建过程。 结构 首先在这里介绍一下组件库的代码结构,上面是整体代码目录结构,每个目录的作用如下: packages...
发布了文章2018-05-06
逻辑分层,容易理解。BEM基于block、element、modify的组织形式,基本与组件的组织形式吻合。只要遵循了BEM的命名方式,对于开发和修改组件,哪些元素和状态已经存在,都可以直观的看出来。反过来,通过html标记的BEM命名,可以直观地理解组件的功能和依赖关系。