ES6+的新语法

Wesley13
• 阅读 714
  1. opts:Object 表示opts的类型是Object类型。 这有点类似.Net中的为泛型指定类型。java中为泛型指定类型是用 extends关键词。 //TODO .Net 和 java中相同写法的CASE

  2. opts:?Object 表示该类型是非必须的。在java 中有类似的学法。 //TODO java中的相同语法CASE

  3. (getState,action)=> action.type==='undefinded' 感觉像匿名方法,又有点像lambda表达式。 4.var createF8Store = applyMiddleware(thunk, promise, array, analytics, logger)(createStore); 创建中间件。听说.net中也有中间件的概念。 //TODO 学习js 和.net 中间件了解其共同思想和差异。

  4. configureStore(onComplete: ?() => void) 定义了一个没有 返回的function.onComplete参数也是非必需的。 onComplete: ?() => void 相当于:

    function onCompete() { //todo something .but not return; }

  5. autoRehydrate()(createF8Store)(reducers) //TODO 不知道什么意思

  6. const data='something' 定义常量

  7. const {data1,data2,data3}=this.props 定义一堆常量

  8. 多个 => 连续使用

    function createThunkMiddleware(extraArgument) { return ({ dispatch, getState }) => next => action => { if (typeof action === 'function') { return action(dispatch, getState, extraArgument); } return next(action); }; } var thunk = createThunkMiddleware(); thunk.withExtraArgument = createThunkMiddleware;

相当于(通过babel 转换成了es5说法):

function createThunkMiddleware(extraArgument) {
  return function (_ref) {
    var dispatch = _ref.dispatch;
    var getState = _ref.getState;
    return function (next) {
      return function (action) {
        if (typeof action === 'function') {
          return action(dispatch, getState, extraArgument);
        }

        return next(action);
      };
    };
  };
}
var thunk = createThunkMiddleware();    
thunk.withExtraArgument = createThunkMiddleware;

//TODO 不知道什么意思

  1. function todoAppReducer(state = initialState, action) {...} state = initialState是给 state 设置默认值 。

  2. 复制一个新对象。 assign 参数:

  • 第一个参数:定义一个新对象。

  • 第二个参数:需要复制给第一个对象的对象。

  • 第三个参数:需要复制给第一个对象的对象。

  • 之后的参数都是复制给第一个空对象。

    Object.assign({}, state, { visibilityFilter: action.filter });

  1. 两个@@的使用
export var ActionTypes = {
  INIT: '@@redux/INIT'
};

\不知道什么意思 13. 展开数组的操作"..."

let middleware=[thunk,logger];
let createAppStore=applyMidddleware(...middleware)(createStore);
  1. 定义新数组 定义数组action:
var arrList= 'a' | 'b' | 'c'

var action: Action | ThunkAction | PromiseAction | Array<Action>
点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java 泛型详解
对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java泛型详解、Java中的泛型方法、java泛型详解1\.概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟
Wesley13 Wesley13
3年前
java泛型
一、实现机制java泛型实现方法为类型擦除,基于这种方法实现的泛型称为伪泛型。java泛型只在源代码中存在,在编译后的文件中替换为原生类型,并插入强制转换。(真正的泛型是应该存在于源码、编译后文件、运行期)二、擦除实例源码:List<StringtestListnewArrayList<String();
Alice423 Alice423
3年前
Dart中的泛型、泛型方法、泛型类、泛型接口
一、Dart中的泛型泛型方法通俗理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)一般用  T  表示泛型getData<T(Tvalue){return
Stella981 Stella981
3年前
Gson通过借助TypeToken获取泛型参数的类型的方法
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。由于Java泛型的实现机制,使用了泛型的代码在运行期间相关的泛型参数的类型会被擦除,我们无法在运行期间获知泛型参数的具体类型(所有的泛型类型在运行时都是Object类型)。但是有的时候
Wesley13 Wesley13
3年前
Java泛型详解
引言Java泛型是jdk1.5中引入的一个新特性,泛型提供了编译时的类型检测机制,该机制允许程序员在编译时检测到非法的类型。泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础
Wesley13 Wesley13
3年前
Java泛型的使用
泛型的定义:泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。泛型的引入背景:集合容器类在设计阶段或声明阶段不能确定这个容器到底实际存储的是什么类型的对象
Stella981 Stella981
3年前
Smali语法学习二
方法签名methodName(III)Lpackage/name/Object;methodName表示方法名,\\(III)\\表示该方法有三个int型参数,Lpackage/name/Object表示方法返回类型。方法的表示Lpackage/name/Object;—methodName(III)Z
Wesley13 Wesley13
3年前
Java泛型一览笔录
1、什么是泛型?泛型(Generics)是把类型参数化,运用于类、接口、方法中,可以通过执行泛型类型调用分配一个类型,将用分配的具体类型替换泛型类型。然后,所分配的类型将用于限制容器内使用的值,这样就无需进行类型转换,还可以在编译时提供更强的类型检查。2、泛型有什么用?泛型主要有两个好处:(1)消除显
Wesley13 Wesley13
3年前
JAVA 泛型中的通配符 T,E,K,V 傻傻分不清楚 ?
前言Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型带来的好处在没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带