高阶组件 (HOC)react 中对组件逻辑进行重用的高级技术。高阶组件本身并不是 React API,它只是一种模式,这种模式是由 react 自身的组合性质产生的。

具体而言, 高阶组件就是一个函数(而不是组件),且该函数接受一个你传递给它的组件作为参数,并返回一个新的组件

const NewComponent = higherOrderComponent(OldComponent);

一、定义高阶组件

我们来看一个很简单的高级组件:

import React, { Component } from 'react';

export default WrappedComponent => {
  class NewComponent extends Component {
    // do some things
    render() {
      return <WrappedComponent />;
    }
  }
  return NewComponent;
};
阅读更多

根据官网说明 第一步,先安装

$ npm install gitbook-cli -g

然后,创建一个笔记文件夹

$ mkdir my-note
阅读更多

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用,实现对数据库的增删查改。

数据库我们选择 MongoDB,它是一个基于分布式文件存储的开源数据库系统,Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具 。

接下来我们使用 Express + Mongoose 来实现简单的增删查改功能。

阅读更多

ES6 中引入了一种编写函数的新语法 —- 箭头函数 Arrow Functions

一. 箭头函数产生的目的

  • 简洁语法
  • 与父作用域共享关键字this

二. 箭头函数的优点

  • 使用箭头函数比普通函数少些动词,如:functionreturn
  • this提前定义,从上下文可以捕获this

当你只需要一个只有一个参数的简单函数时,可以使用新标准中的箭头函数,它的语法非常简单:标识符=>表达式。你无需输入 functionreturn,一些小括号、大括号以及分号也可以省略。

阅读更多

一 . Array.from()

Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)

下面是一个类似数组的对象,Array.from将它转为真正的数组。

let arrayLike = {
  '0': 'a',
  '1': 'b',
  '2': 'c',
  length: 3
};

// ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']

// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
阅读更多

我们知道, 在传统的 JavaScript 语言,输出模板通常是这样写的 , 需要用+来拼接 :

$('#result').append(
  'There are <b>' +
    basket.count +
    '</b> ' +
    'items in your basket, ' +
    '<em>' +
    basket.onSale +
    '</em> are on sale!'
);

上面这种写法相当繁琐不方便.

阅读更多

一 . Set

ES6 提供了新的数据结构 Set 。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set 本身是一个构造函数,用来生成 Set 数据结构。

const s = new Set();

[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

for (let i of s) {
  console.log(i);
}
// 2
// 3
// 5
// 4
阅读更多

JavaScript 中最难最繁复的一个知识点应该就是原型继承, 要说清楚原型继承,就得先了解清楚什么是原型链。

一.原型链

在写 JavaScript 的时候,我们经常会写出下面的代码:

const arr = [1, 2, 3];
arr.push(4); // 4

const string = 'Deepspace';
string.slice(1);//eepspace

那么我们会不会觉得很奇怪, 为什么我好端端的创建一个数组或者字符串,莫名其妙地就有了 .push, .slice 这些方法呢?

阅读更多
2 / 3