React-周边类库

围着Ractfacebook还开发了一系列的前端工具。在你的React项目中,这些工具不是非用不可的,不过它们确实可以和React一起完美的工作。例如:

Jest

Immutable.js

Flux

 

一、JestFactbook开发的一个测试运行工具。给予Jasmine测试框架提供相近的方式,使用大家熟悉的类似于expectvalue.to(other)的断言。它提供了默认的模拟行为,会自动模拟require()返回的CommonJS模块。让现有的代码变成可测试的。它使用了模拟的DOM API ,同时通过小巧的Node.js命令行工具进行运行,缩短每次测试运行的时间。

 

1、设置

要在你的项目中使用est,首先需要创建一个_tests_文件夹(这个名字可以设置),然后在_tests_里创建一个测试文件:

//_test_/sum-test.js

jest.dontMock('../sum');

describe('sum',function(){
     it('adds 1+2 to equal 3',function(){

var sum =require('../sum');

expect(sum(1,2)).toBe(3);

}

});

 

});

使用npm install jest-cli --save-dev命令安装Jest,然后在命令行运行jest,你应该能看到运行结果。

 

2、自动模拟依赖

Jest默认会自动模拟源码文件中所有的依赖,它通过覆盖Noderequire函数实现。

 

3、手动模拟依赖

有时候Jest的自动模拟一栏无法满足要求,这些场景下,Jest允许你针对特定的类库创建自己的模拟对象。

 

 

 

二、Immutable.js

 

不可以变数据结构(Immutable Data Structures)中的数据是不允许修改的。相反,如果数据需要改变,它们会返回原始数据的一个经过修改的拷贝,ReactFlux可以很好的结合不可变数据结构,带来代码的简洁和性能的提升。

Immutable.js提供了多个数据结构,可以有原生的JavaScript数据结构构造而成,在需要的时候,也可以转会原生的JavaSctipt数据结构。

 

1immutable.Map

Immutable.Map可作为常规JavaScript对象的替代者来使用:

var question=Immutable.Map({desctiption:'who is your favorite superhero?'});

 

//使用.getMap中取值

//同样原来的对象没有任何变化

var title={title:'Question#1'};

var question3=question.merge(question2,title);

question3.toObject();//{title: 'Question #1',desctiption":'who is your favorite comicbook hero'}

 

2Immutable.Vector

可以使用Immutable.Vector代替数组:

var options=Immutable.Vector('superman','Batman');

var option2 =options.push('Spiderman');

option2.toArray();//['Superman','Batman','Spiderman']

 

你还可以对这些数据结构进行嵌套:varoptions=Immutable.Vector('Superman','Batman');

var question =Immutable.Map{

description:'who is your favorite superhero?',

options:options

});

 

Immutable.js还有更丰富的特性,你可以到https://github.com/facebook/immutable-js上获取更多的相关信息。

 

 

三、Flux

FluxFacebook在发布React时发布的一种模式。它显著的特性是严格的单向数据流。

FacebookGitHub发布了一份关于实习那Flux的参考,可以通过https://github.com/facebook/flux访问到。

 

1Flux包含了三个重要的组件

Dispatcher

Store

View


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值