react核心

2020-01-20
阅读 10 分钟
3.6k
简单来说,就是virtual dom & react diff。我们都知道在前端开发中,js运行很快,dom操作很慢,而react充分利用了这个前提。在react中render的执行结果是树形结构的javascript对象,当数据(state || props)发生变化时,会生成一个新的树形结构的javascript对象,这两个javascript对象我们可以称之为virtual dom。然...

React Hooks实践

2019-12-30
阅读 3 分钟
2.5k
9月份开始,使用了React16.8的新特性React Hooks对项目进行了重构,果然,感觉没有被辜负,就像阮一峰老师所说的一样,这个 API 是 React 的未来。

JS原型解析

2019-07-09
阅读 1 分钟
1.8k
JS中原型是为了实现代码重用的一种仿类机制,不过它跟类又完全不同。它通过给对象添加原型关系(即给某个对象添加__proto__属性)实现一个关联。把共有的方法和属性放到这个关联上即实现了JS的继承。简单来说就是一种委托机制。

react全家桶从0到1(react-router4、redux、redux-saga)

2019-01-18
阅读 11 分钟
25.1k
本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目。文中针对react、webpack、babel、react-route、redux、redux-saga的核心配置会加以讲解,希望通过这个项目,可以系统的了解react技术栈的主要知识,避免搭建一次后面就忘记的情况。

JavaScript运行原理解析

2019-01-14
阅读 2 分钟
4.4k
首先说一下为什么要做成虚拟机,因为机器不同,如果没有虚拟机我们就相当于需要针对每一种机器都要进行代码编译,这样肯定是不合理的。所以为了解决这样的问题,Java引入虚拟机(VM)的概念,让编译后的代码直接跑在一台虚拟的机器上,无论最终的目标平台是什么,都在上面构建出一个虚拟的一致的虚拟机出来,就可以达到...

前端技能拾遗

2018-12-21
阅读 2 分钟
2.1k
解释型语言与编译型语言的区别翻译时间的不同。编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。而JS...

设计模式应用举例

2018-12-06
阅读 11 分钟
2.8k
纸上得来终觉浅,学习设计模式,看了很多书,但是始终还是觉得不如直接看例子来的更加客观具体,下面主要记录了js中的几个常见的设计模式举例,供自己以后复习的时候可以直接通过例子更快更好的理解设计模式。

《你不知道的JS上》笔记

2018-09-06
阅读 6 分钟
2.7k
JS是编译型语言 编译发生在代码执行前几微秒,简单来说就是js在执行前要进行编译,编译过程发生在代码执行前几微妙,甚至更短。 编译的步骤 词法分析以var a = 2 为例,词法分析会将其分成三个有意义的代码块即词法单元。 语法分析将词法单元组合生成代表了程序语法的结构的树,即抽象语法书(AST)。 代码生成将AST生成...

《如何阅读一本书》读书笔记

2018-08-13
阅读 2 分钟
2.6k
我们时常会有这样的困惑,好像读了很多书,但是能真正记下来的东西却寥寥无几。最后可能只是局限于我读过,但是什么都没有留下。《如何阅读一本书》通过大量的规则来解决问题。用书中的话来说:“运用本书所提供的规则,仔细的阅读一本书,而不是浮于表面的阅读大量的书,就是一个好的读者能达到的境界了。”同时在阅读时...

vue cli 平稳升级webapck4

2018-04-03
阅读 3 分钟
5.3k
webpack4 released 已经有一段时间了,插件系统趋于平稳,适逢对webpack3的打包速度很不满意,因此决定将当前在做的项目进行升级,正好也实践一下webpack4。

IDEA环境配置

2017-11-08
阅读 2 分钟
3.5k
入职后的某一天,惊闻自己要搞jsp,我的内心还是在偷偷的窃喜的,我终于也要开始搞上java了。然后雄赳赳气昂昂,准备跨过鸭绿江,后来才知道鸭绿江的水真的很冷。

9月份前端面试总结

2017-10-10
阅读 1 分钟
3.2k
为什么会离职呢?这是一个问题!可能原因更加荒唐,太安逸,太悠闲。我怕自己以后会变得懒惰、懈怠。这里有我熟悉的、可爱的同事,其实真的不想离开,但是我也知道这是我的一个舒适区,我必须跳出去。好的,闲话少说,九月份开始面试,面了几家一线二线的公司,这里做一个总结,给自己以后的职业生涯积累一些经验的同时,...

vue server render实践

2017-06-05
阅读 1 分钟
2k
近期在重构一个后台的项目,前端用的是jquery + bootstrap,说真的,在用react之前,我没有觉得组件化是如此的美妙并且必须。so, 在重构的时候就选择了vue,那么问题来了,为什么不是react。首先,抛开性能不说,因为React和Vue在大部分常见场景下都能提供近似的性能,并且几乎这点差异可以通过代码的方式弥补。因为我们...

javascript正则表达式总结

2017-03-27
阅读 3 分钟
4.5k
​ “如果罗列计算机软件领域的伟大发明,我相信绝对不会超过二十项,在这个名单当中,当然应该包括分组交换网络,Web,Lisp,哈希算法,UNIX,编译技术,关系模型,面向对象,XML这些大名鼎鼎的家伙,而正则表达式也绝对不应该被漏掉。​对很多实际工作而言,正则表达式简直是灵丹妙药,能够成百倍的提高开发效率和程序质...

设计模式之中介者模式

2017-03-05
阅读 3 分钟
2.3k
中介者模式 我们知道在程序中各个对象之间并不是完全独立的,相互之间是可能存在关系的,并且可能会相互影响的,就像这样。 很明显这样复杂的对象关系管理起来是很混乱的。但是如果我们把它改变成下面这个样子可能就不太一样了。 即通过一个中间对象分发通知,使各个对象之间得以解耦,从混乱的多对多关系变成了对象和中...

洗牌问题的实现

2017-02-08
阅读 1 分钟
1.7k
洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下...

Animation 实现轮播图

2017-02-08
阅读 1 分钟
1.8k
{代码...}

Transition 实现轮播图

2017-02-07
阅读 3 分钟
5.5k
关于轮播图的实现算是前端的一个基础,其实实现起来是很简单,这里把实现的基本思路总结一下。轮播图的实现方案有很多种方式,可以用纯js来实现,也可用css来实现,我们这里主要用到了css3的过渡(transition)以及转换(transform),二者结合实现图片的匀速移动。虽然实现方式有很多,但是基本的html结构却是一样的。

js排序算法(一)

2017-01-22
阅读 3 分钟
2k
1. 冒泡排序算法: 即相邻的两个元素进行比较,如果前一个元素比后一个元素大,则将这两个元素换位,即将较大的元素后置。 内循环每走一次都会将前length - i个元素中的最大元素放到length - i 的位置上。 {代码...} 2. 选择排序算法: 每次循环都选择最小值,然后将其与当前位置的值进行互换操作即可 {代码...} 3. 插入排...

vs code快捷键总结

2017-01-11
阅读 1 分钟
9.8k
1. 切换到终端 {代码...} 2. 删除一行 {代码...} 3. 选择同一个文件中的相同单词 {代码...} 4. 复制一行文字到下一行/上一行 {代码...} 5. 向上插入空行 {代码...} 6. 向下插入空行 {代码...} 7. 分割窗口 {代码...} 8. 激活光标多行选择 {代码...} 9. 格式化代码 {代码...} 10. 侧边栏4大功能显示: {代码...} 11. 预览...

node child_process模块详解

2016-12-24
阅读 2 分钟
5.6k
cup: 计算机包含五大基本硬件运算器、控制器、存储器、输入,输出设备。运算器和控制器集成为中央处理单元即CPU(Central Processing Unit),其主要作用是执行一系列指令运算然后将结果写回。

自我成长使用路线指南一

2016-12-22
阅读 1 分钟
1.4k
1. css通解 2. js通解 3. NODE通解 4. react通解 5. vue通解 6. 算法 7. 设计模式 7. 操作系统 9. 计算机网络 10. 数据库设计 11. 程序员数学

CSS实用技巧二

2016-12-01
阅读 2 分钟
2k
在上一篇文章中我们知道可以通过text-indent: 2rem属性可以实现首行缩进两个字符。现在我们来讲一下第二个技巧。通过设置text-indent: -9999px来实现针对<h1>如果里面是<img>标签的情况下实现更好的SEO优化。在搜索引擎优化中, h1是非常重要的标签。一般情况下,我们会把logo放在<h1>标签中,但是我们...

CSS实用技巧总结一

2016-11-30
阅读 3 分钟
1.9k
当一个元素出现在另外一个元素上面的时候,第一个元素的下边距(margin-bottom) 将会与第二个元素的上边距(margin-top)会发生合并。

centos7安装mysql及权限配置

2016-11-24
阅读 2 分钟
4.4k
众所周知,Linux系统自带的repo是不会自动更新每个软件的最新版本(基本都是比较靠后的稳定版),所以无法通过yum方式安装MySQL的高级版本。所以我们需要先安装带有当前可用的mysql5系列社区版资源的rpm包。

graphql使用初探

2016-11-12
阅读 3 分钟
3.6k
当我们的程序变得日益庞大、臃肿,各个业务之间的数据、前端界面之间的耦合度就可能会很高,这样不仅维护成本和开发成本会飙升,而且还可能做的更多重复性的工作。由此我们想到可以将通用的一些东西抽取出来。针对此问题前端领域衍生出了很多优秀的框架,其中当以react和vue应用最广泛,通过组件化的方式实现代码的重用...

vuex初探

2016-10-27
阅读 2 分钟
2.8k
vuex是与redux类似的应用于vue应用程序的前端数据处理框架。vuex汲取了redux很多优秀的特性,比如说单一的状态树,通过dispatch一个action来更新状态树。同时由于vuex只是针对vue的,其本身与vue的契合度更高,也更加轻量,可以在不需要第三方库的情况下支持异步请求。

Buffer 对象

2016-10-16
阅读 2 分钟
2.5k
Buffer对象Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require('buffer')。虽然javascript对于字符串的操作十分友好。但是,在node中,很多的操作都会处理大量的二进制数据,比如文件处理,网络协议处理,图片处理。javascript自有的字符串远远不能满足这些要求,于是...

KMP模式匹配算法(二) next数组

2016-09-25
阅读 2 分钟
4.5k
在进入正题前,我们首先来回顾一下暴力匹配算法。总计来说,就是逐个字符匹配,匹配成功后,再匹配下一个字符,直到所有字符匹配成功,若在中间有任意一个字符匹配失败,则回溯至从第二个字符开始进行新的匹配。而KMP算法则是根据一些已知的信息,跳过一些没有必要的匹配,从而达到更高的匹配效率。举例来说,假设我们有...

通过ssh连接到服务器

2016-09-18
阅读 2 分钟
2.5k
SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输。早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标...