分析 __proto__ 和 prototype 的区别

前言: ES6 已经广泛运用于 nodejs 中,类的写法也由 Function 升级到了 Class。然而,Class 只是过往 ES5 环境中 Function 的语法糖,所以以往 function 写法构建类时候的很多操作和知识点,同样会延续到 es6 的类写法 class 中。故而,不妨重新回顾一下 ES5 中原型链的一些特性。

阅读更多

Immutable 常用 API 整理

前言:之前开发的项目用到了 immutable 数据类型,故而对常用 api 进行整理一下,方便大家使用。具体 immutable 的简介和用途,可以自行查询,这里就不再赘述。

阅读更多

React 性能优化之 redux-ignore

前言:我们在构建 React & Redux 应用时,无法避免地,当项目越来越大时,action 和相应 reducer 的数量会骤增。但是也许与大部分人的预期相反,当一个 action 触发时,不仅仅是该 action 对应的 reducer 执行了,其他所有的 reducer 也同时被执行了,只是 action type 不匹配,state 的值不变而已。这种空操作,也在无形中消耗了宝贵的性能

阅读更多

React 性能优化之 shouldComponentUpdate

前言: React 性能优化也是我们在编写应用时很容易遇到的问题,此篇我们从三个方面论述一下如何通过覆写 shouldComponentUpdate 来优化 React 的性能

阅读更多

React Portal 传送门

前言:Portal 顾名思义是传送门的意思。它在 React 中可以实现:render 到一个组件里面去,但是实际改变的是网页上另一处的 DOM 元素。

阅读更多

React-Router 同一 URL 下,参数改变,重新发起请求

前言:React + React Router 制作的单页应用中,我们通常把 ajax 操作写在 componentDidMount 中。一般来说那么做没有什么问题,但是若是路由跳转时,路由地址没变,但是参数发生了变化(譬如:/home/123 => /home/456),此时由于组件已经挂载完成,componentDidMount 并不会再次执行,故而页面不刷新,下面我们解决这个问题:

阅读更多

React + redux + immutable 的 ajax 自动流程管理

前言:在单纯的 React & redux 的开发中,我们可以使用 redux-amrc 来帮助我们进行自动异步流程管理,然而在引入了 immutable 不可变数据结构以后。由于这个库只支持原始 JS 数据类型,故而无法使用,下面我们尝试着自己封装一个适用于 immutable 结构的 amrc 库出来

阅读更多

在 React 和 Redux 中引入 async await 语法

前言:之前我们介绍了 async 和 await 函数的用法,下面我们尝试着在 react 和 redux 中运用 async 语法。

阅读更多

React 之使用 与操作符,三目表达式,简化组件的逻辑判断

前言:平时我们处理 React JSX 组件时,常常会用 if else 来进行条件判断,但是这种写法过于臃肿,下面我们尝试着用 && 和三目运算符来对组件的写法进行优化

阅读更多

ES6 之 Async 函数

async 函数本质上近似于 Generator 函数 + 自动执行器的语法糖,由 ES2017 标准引入,并且在 nodejs v8.0 及其以上版本中提供了原生支持,下面我们介绍一下 async 函数的用法和特点

阅读更多

ES6 之 Generator 函数的应用

前言:本章主要介绍一下 Generator 函数的应用。在 Generator 函数诞生以前,我们主要是用诸如,回调函数,事件监听,发布订阅,Promise 对象等方式进行异步操作。Generator 函数的诞生,将为异步调用带来一个全新的体验

阅读更多

ES6 之 Promise 用法解析

Promise 在之前的版本中均有第三方库实现,但是 ES6 将其纳入了语言标准,统一了用法,并提供了原生的 Promise 实现,下面我们介绍一下 promise 的具体用法为何(参考学习,阮一峰 << ES6权威指南 第二版 >>,特此感谢)

阅读更多

ES6 之 Generator 函数用法解析

ES6 新增了一种异步编程的解决方案 Generator 函数,其语法和行为方式和过往的函数都不同。其既是一个状态机,也是一个遍历器对象生成函数( 可以调用 next )

阅读更多

ES6 之 Iterator 和 for of 循环

ES6 新增了两种集合类型 map 和 set,面对这愈来愈多的数据类型,Iterator 应运而生,它可以结合新的for of 循环,对于任何部署了 Iterator 接口的数据类型,都可以完成统一的遍历操作。

阅读更多

React key 对渲染性能的影响

使用 React 编写组件时,若渲染的是一个循环结构,若不为数组的每一项设置一个 key ,则控制台会抛出警告:

Warning: Each child in an array or iterator should have a unique “key” prop.
Check the render method of Constructor.
See http://fb.me/react-warning-keys for more information.

通常我们为了消除警告,会把数组的 index 设置为 key 值以消除警告,那么这种做法是否合理呢?

阅读更多