<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ihtml5</title>
    <description>Innovation, thinking, excellence
</description>
    <link>http://bencentra.github.io/</link>
    <atom:link href="http://bencentra.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 21 Aug 2019 06:09:34 +0000</pubDate>
    <lastBuildDate>Wed, 21 Aug 2019 06:09:34 +0000</lastBuildDate>
    <generator>Jekyll v3.8.5</generator>
    
      <item>
        <title>探索react技术栈-技术选型</title>
        <description>&lt;h3 id=&quot;一前言&quot;&gt;一.前言&lt;/h3&gt;

&lt;p&gt;陆陆续续接触react有一年多了，深感&lt;a href=&quot;http://facebook.github.io/react&quot;&gt;react&lt;/a&gt;的简单优雅，急切地想用react去开发程序。但是热情之后，发现react社区的种种问题。比如在社区打打常常提到的 &lt;a href=&quot;https://angular.io/&quot;&gt;angular&lt;/a&gt; vs &lt;a href=&quot;http://facebook.github.io/react&quot;&gt;react&lt;/a&gt;。react作为view层的库，
并没有给我们提供像&lt;a href=&quot;https://angular.io/&quot;&gt;angular&lt;/a&gt;那样全方位的解决方案。社区很多围绕&lt;a href=&quot;http://facebook.github.io/react&quot;&gt;react&lt;/a&gt;的解决方案层出不断，尚没有形成一致的最佳实践。那么，在现有的react解决方案下，我们能否提炼出一个行之有效的方案呢，笔者认为可以从以下几方面入手:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;技术选型&lt;/li&gt;
  &lt;li&gt;项目目录划分&lt;/li&gt;
  &lt;li&gt;应用程序状态管理&lt;/li&gt;
  &lt;li&gt;前后台交互&lt;/li&gt;
  &lt;li&gt;测试&lt;/li&gt;
  &lt;li&gt;迭代式开发&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;本文作为探索react技术栈第一篇，首先来聊一聊基于react技术栈的技术选型。&lt;/p&gt;

&lt;h3 id=&quot;二技术选型的意义&quot;&gt;二.技术选型的意义&lt;/h3&gt;

&lt;p&gt;1.&lt;strong&gt;View(react)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;使用react来构造view&lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;状态管理(redux or mobx)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.github.com/reactjs/redux&quot;&gt;redux&lt;/a&gt;和&lt;a href=&quot;https://github.com/mobxjs/mobx&quot;&gt;mobx&lt;/a&gt;是社区两个最著名的状态管理框架。可以选择其中一种，因为redux作者是react核心团队的开发者，基于redux的社区也非常庞大，推荐使用redux&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;路由(react-router)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/ReactTraining/react-router&quot;&gt;react-router&lt;/a&gt;是react社区公认的路由框架，但是这个库更新频繁，api变动比较大，笔者推荐使用其较稳定的v2.8.1&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;样式&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;当前围绕react的样式解决方案，有三种即传统class声明，css in js,css module&lt;/p&gt;

&lt;p&gt;5.&lt;strong&gt;语言(Es6)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;对浏览器要求不高，即满足ie9+以上的，可以使用es6开发应用，然后通过&lt;a href=&quot;http://www.babeljs.io&quot;&gt;babel&lt;/a&gt;转码，对于浏览器要求较高的，使用es5来编写，并引入pollify来支持浏览器兼容&lt;/p&gt;

&lt;p&gt;6.&lt;strong&gt;fetch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://fetch.spec.whatwg.org/&quot;&gt;fetch spec&lt;/a&gt;使用promise接口来进行后端接口请求，相比ajax来说，使用更加方便，在项目中，
  推荐使用fetch的&lt;a href=&quot;https://github.com/github/fetch&quot;&gt;官方实现&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.&lt;strong&gt;构建工具(webpack)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://webpack.js.org&quot;&gt;webpack&lt;/a&gt;是社区公认的优秀打包工具，和react非常搭。配合&lt;a href=&quot;http://gulpjs.com/&quot;&gt;gulp&lt;/a&gt;来完成流畅地前端开发。&lt;/p&gt;

&lt;p&gt;8.&lt;strong&gt;测试(jest or enzyme)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;facebook推出的react测试工具&lt;a href=&quot;http://facebook.github.io/jest&quot;&gt;jest&lt;/a&gt;和airbnb推出的&lt;a href=&quot;http://airbnb.io/enzyme/&quot;&gt;enzyme&lt;/a&gt;都可以用来测试react&lt;/p&gt;

&lt;p&gt;9.&lt;strong&gt;mock(node or json mock server)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;基于react的开发，几乎都是前后端分离，通过mock后端的接口，可以加快前端的开发效率。构建mock接口，一可以通过node来自己编写mock server或者可以通过现有的json mock server比如&lt;a href=&quot;http://www.jsonohyeah.com/&quot;&gt;jsonyeah&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10.&lt;strong&gt;异步数据流处理&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;对于简单的异步数据处理我们可以使用&lt;a href=&quot;https://github.com/gaearon/redux-thunk&quot;&gt;redux-thunk&lt;/a&gt;或者&lt;a href=&quot;https://github.com/acdlite/redux-promise&quot;&gt;redux-promise&lt;/a&gt;,对于复杂的异步交互，可以使用&lt;a href=&quot;http://www.github.com/redux-observable/redux-observable&quot;&gt;redux-observable&lt;/a&gt;和&lt;a href=&quot;https://github.com/redux-saga/redux-saga&quot;&gt;redux-sagas&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;相关链接&quot;&gt;相关链接&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/petehunt/react-howto&quot;&gt;react howto&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/sorrycc/blog/issues/1&quot;&gt;React + Redux 最佳实践&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;
</description>
        <pubDate>Thu, 16 Feb 2017 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/deep%20into%20react/2017/02/16/how-to-select-lib-based-on-react.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/deep%20into%20react/2017/02/16/how-to-select-lib-based-on-react.html</guid>
        
        
        <category>deep into react</category>
        
      </item>
    
      <item>
        <title>高阶组件-基于react的应用程序设计模式(译文)</title>
        <description>&lt;h4 id=&quot;higher-order-components-a-react-application-design-pattern&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.sitepoint.com/react-higher-order-components/?utm_source=hashnode.com&quot;&gt;Higher Order Components: A React Application Design Pattern&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;an-introduction-to-reasonably-pure-functional-programming&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.sitepoint.com/an-introduction-to-reasonably-pure-functional-programming/&quot;&gt;An Introduction to Reasonably Pure Functional Programming&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;higher-order-functions-in-javascript&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.sitepoint.com/higher-order-functions-javascript/&quot;&gt;Higher-Order Functions in JavaScript&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
</description>
        <pubDate>Wed, 31 Aug 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/react/2016/08/31/higher-order-component.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/react/2016/08/31/higher-order-component.html</guid>
        
        
        <category>react</category>
        
      </item>
    
      <item>
        <title>redux源码解读</title>
        <description>&lt;h3 id=&quot;一目录分析&quot;&gt;&lt;strong&gt;一.目录分析&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&quot;1src&quot;&gt;1.src&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;项目的源代码,包括以下几个文件：&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;index.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;整个redux框架的入口文件
&lt;strong&gt;作用&lt;/strong&gt;: 导出redux的几大函数包括createStore,bindActionCreators,combineReducers,compose,applyMiddleware&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;createStore.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;创建应用唯一的state树&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;bindActionCreators.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;工具类函数
&lt;strong&gt;作用&lt;/strong&gt;: 方便开发者将dispatch和actioncreator当props绑定到组件中&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;combineReducers.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;将多个reducer,合并成一个reducer,传入到createStore函数中&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;compose.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;将多个函数组合执行&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;applyMiddleware&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;工具类函数 
&lt;strong&gt;作用:&lt;/strong&gt; 将中间件如&lt;a href=&quot;https://github.com/gaearon/redux-thunk&quot;&gt;redux-thunk&lt;/a&gt;应用到createStore函数上&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;util/warning.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;自定义的错误信息提示函数&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;2docs&quot;&gt;2.docs&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;redux的文档.
官方网站:&lt;a href=&quot;http://www.redux.js.org&quot;&gt;www.redux.js.org&lt;/a&gt;
中文翻译:&lt;a href=&quot;http://cn.redux.js.org&quot;&gt;cn.redux.js.org&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;3build&quot;&gt;3.build&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;构建redux所需要的一些文件&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;4examples&quot;&gt;4.examples&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;redux的使用案例,从简单的原生counter到复杂到真实场景的应用,都提供了案例参考&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;5test&quot;&gt;5.test&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;测试文件目录&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;6node_modules&quot;&gt;6.node_modules&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;redux源码所依赖的node包&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;源码分析&quot;&gt;&lt;strong&gt;源码分析&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&quot;1srcindexjs&quot;&gt;&lt;strong&gt;1.src/index.js&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;关键词&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;源代码使用了es6语法,使用import从文件中导出es6模块
&lt;a href=&quot;http://es6.ruanyifeng.com/#docs/module#import命令&quot;&gt;import用法&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;源码解读&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;1.导出redux的各个主要模块导出redux的各个主要模块&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;       &lt;span class=&quot;c1&quot;&gt;// 绑定reducer和state的关系&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;createStore&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'./createStore'&lt;/span&gt;
       &lt;span class=&quot;c1&quot;&gt;// 导出警告函数&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;warning&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'./utils/warning'&lt;/span&gt;
       &lt;span class=&quot;c1&quot;&gt;// 导出自动绑定函数 自动绑定函数，主要生成dispatch(actionCreator(action));&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;bindActionCreators&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'./bindActionCreators'&lt;/span&gt;
       &lt;span class=&quot;c1&quot;&gt;// 导出应用中间件函数,中间件主要作用是将发往reducer的action进行多次修改&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;applyMiddleware&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'./applyMiddleware'&lt;/span&gt;
       &lt;span class=&quot;cm&quot;&gt;/* 合并多个reducer,这样方便每个reducer只处理store的某一个部分数据，最后通过
       * combineReducers函数合并
       */&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;combineReducers&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'./combineReducers'&lt;/span&gt;
       &lt;span class=&quot;c1&quot;&gt;// 将多个函数合并在一起&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;compose&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'./compose'&lt;/span&gt;
  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;2.在开发环境下使用压缩版本给予警告&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;      &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;isCrushed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
       &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;process&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;NODE_ENV&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'production'&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;typeof&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;isCrushed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'string'&lt;/span&gt; 
        &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;isCrushed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!==&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'isCrushed'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
           &lt;span class=&quot;nx&quot;&gt;warning&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;'You are currently using minified code outside of NODE_ENV === &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;production&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;. '&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;'This means that you are running a slower development build of Redux. '&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify '&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) '&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;'to ensure you have the correct code for your production build.'&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
       &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;3.导出多个对象&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;      &lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;createStore&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;compose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;warning&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;combineReducers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;bindActionCreators&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;2srcutilswarningjs&quot;&gt;&lt;strong&gt;2.src/utils/warning.js&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;关键词&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;ol&gt;
    &lt;li&gt;&lt;a href=&quot;https://defed.github.io/%E6%A8%A1%E5%9D%97/&quot;&gt;export default&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch&quot;&gt;javascript中异常处理&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://davidwalsh.name/fix-javascript-errors&quot;&gt;javascript中错误处理&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://javascript.ruanyifeng.com/grammar/error.html#toc5&quot;&gt;阮一峰谈javascript错误处理&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;源码解读&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;1.判定console.error是否存在且可用&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;    &lt;span class=&quot;c1&quot;&gt;// 导出warning函数&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;warning&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// 判断console.error函数是否存在且可用&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;typeof&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'undefined'&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;typeof&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'function'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;2.捕获异常并处理&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;    &lt;span class=&quot;k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// 抛出异常&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// 捕获异常&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;redux从入门到进阶&quot;&gt;redux从入门到进阶&lt;/h3&gt;

&lt;h4 id=&quot;初学者&quot;&gt;&lt;strong&gt;初学者&lt;/strong&gt;&lt;/h4&gt;
&lt;blockquote&gt;
  &lt;p&gt;学习步骤：1. 阅读redux的官方文档 2.通过一些小例子熟悉redux的思想 3.复杂案例应用 4.熟悉redux的源码 5.熟悉业界关于redux的最佳实践&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.reduxjs.org&quot;&gt;redux offical site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yq.aliyun.com/articles/36261?spm=5176.100240.searchblog.32.2LIXzh&quot;&gt;Redux系列01：从一个简单例子了解action、store、reducer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yq.aliyun.com/articles/36265?spm=5176.100240.searchblog.21.lItKnE&quot;&gt;Redux系列02：一个炒鸡简单的react+redux例子&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;pratice&quot;&gt;&lt;strong&gt;Pratice&lt;/strong&gt;&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;关于redux的实战经验&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://undefinedblog.com/some-thoughts-in-redux/&quot;&gt;Redux 在实践中的一些问题及思考&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leozdgao.me/reacthe-reduxde-qiao-jie-react-redux/&quot;&gt;React和Redux的连接react-redux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leozdgao.me/reduxshi-jian-zhong-de-xie-xiang-fa/&quot;&gt;对Redux实践中数据请求的一些想法&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yq.aliyun.com/articles/36263?spm=5176.100240.searchblog.26.NAsBoE&quot;&gt;Redux系列x：源码解析&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
        <pubDate>Sun, 21 Aug 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/react/2016/08/21/redux-source.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/react/2016/08/21/redux-source.html</guid>
        
        <category>redux</category>
        
        
        <category>react</category>
        
      </item>
    
      <item>
        <title>制作react教程</title>
        <description>&lt;h3 id=&quot;1-参考案例&quot;&gt;1. 参考案例&lt;/h3&gt;

&lt;h4 id=&quot;梁杰讲react&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.jikexueyuan.com/course/reactjs/&quot;&gt;梁杰讲react&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;reactjs-program&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.reactjsprogram.com/#courses&quot;&gt;ReactJS Program&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;react-roadmap&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/topreact/react-roadmap&quot;&gt;react-roadmap&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;2-视频&quot;&gt;2. 视频&lt;/h3&gt;

&lt;embed src=&quot;http://player.youku.com/player.php/sid/XMTMyOTcyNTY0NA==/v.swf&quot; allowfullscreen=&quot;true&quot; quality=&quot;high&quot; width=&quot;480&quot; height=&quot;400&quot; align=&quot;middle&quot; allowscriptaccess=&quot;always&quot; type=&quot;application/x-shockwave-flash&quot; /&gt;

&lt;h3 id=&quot;3-代码示例&quot;&gt;3. 代码示例&lt;/h3&gt;

&lt;script src=&quot;http://jsfiddle.net/yyx990803/okv0rgrk/embed/&quot;&gt;&lt;/script&gt;

</description>
        <pubDate>Wed, 17 Aug 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/react/2016/08/17/react-workshop.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/react/2016/08/17/react-workshop.html</guid>
        
        
        <category>react</category>
        
      </item>
    
      <item>
        <title>react常用设计模式总结(干货)</title>
        <description>&lt;hr /&gt;

&lt;h4 id=&quot;links&quot;&gt;Links&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;http://krasimirtsonev.com/blog/article/Dependency-injection-in-JavaScript&quot;&gt;Dependency injection in JavaScript&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/krasimir/react-in-patterns&quot;&gt;react-in-patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://krasimirtsonev.com/blog/article/react-js-in-design-patterns&quot;&gt;React.js in patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.60sky.com/post/react-in-patterns.html&quot;&gt;React.js 模式&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Wed, 10 Aug 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/react/2016/08/10/react-patterns.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/react/2016/08/10/react-patterns.html</guid>
        
        
        <category>react</category>
        
      </item>
    
      <item>
        <title>如何在网站开发中避免低性能使用iframe</title>
        <description>&lt;h3 id=&quot;iframe&quot;&gt;iframe&lt;/h3&gt;

&lt;h4 id=&quot;iframes-onload-and-documentdomain&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.nczonline.net/blog/2009/09/15/iframes-onload-and-documentdomain/&quot;&gt;Iframes, onload, and document.domain&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;iframe异步加载技术及性能&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.cnblogs.com/beiyuu/archive/2011/07/18/iframe-tech-performance.html&quot;&gt;iframe异步加载技术及性能&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;using-iframes-sparingly&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.stevesouders.com/blog/2009/06/03/using-iframes-sparingly/&quot;&gt;Using Iframes Sparingly&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;iframe-loading-techniques-and-performance&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.aaronpeters.nl/blog/iframe-loading-techniques-performance?%3E&quot;&gt;Iframe loading techniques and performance&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;modern-iframe-programing&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.aaronpeters.nl/blog/iframe-loading-techniques-performance?%3E&quot;&gt;Modern iframe programing&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;using-iframes-to-address-third-party-script-issues-and-boost-performance&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://radar.oreilly.com/2013/06/using-iframes-to-address-third-party-script-issues-and-boost-performance.html&quot;&gt;Using Iframes to Address Third-Party Script Issues and Boost Performance&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;non-onload-blocking-async-js&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.phpied.com/non-onload-blocking-async-js/&quot;&gt;Non-onload-blocking async JS&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
</description>
        <pubDate>Thu, 28 Jul 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/performance/2016/07/28/High-Performance-Iframe.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/performance/2016/07/28/High-Performance-Iframe.html</guid>
        
        
        <category>performance</category>
        
      </item>
    
      <item>
        <title>高质量前端资源</title>
        <description>&lt;h3 id=&quot;es2015--es5&quot;&gt;ES2015 || ES5&lt;/h3&gt;

&lt;h4 id=&quot;from-product-design-to-virtual-reality&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://medium.com/google-design/from-product-design-to-virtual-reality-be46fa793e9b#.48cvufvej&quot;&gt;From product design to virtual reality&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;understanding-ecmascript-6&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://leanpub.com/understandinges6/read#leanpub-auto-other-string-changes/&quot;&gt;Understanding ECMAScript 6&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;javascript-design-pattern&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://addyosmani.com/resources/essentialjsdesignpatterns/book/&quot;&gt;Javascript design pattern&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;javascript-api文档&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://devdocs.io/javascript/&quot;&gt;javascript API文档&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;如何成为一个javascript-大牛&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://web.jobbole.com/83399/&quot;&gt;如何成为一个JavaScript 大牛？&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h5 id=&quot;这篇文章讲述了如何从一个javascript新手成长为javascript大牛的一般过程非常值得一看&quot;&gt;这篇文章讲述了如何从一个javascript新手成长为javascript大牛的一般过程，非常值得一看。&lt;/h5&gt;

&lt;h4 id=&quot;es6-手册&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://qiutc.me/post/es6-cheatsheet.html&quot;&gt;es6 手册&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;jstips&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.jstips.co/&quot;&gt;jstips&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h5 id=&quot;每天花两分钟时间就可以了解到一些精选的js实践这些实践包括性能hack语言应用等&quot;&gt;每天花两分钟时间就可以了解到一些精选的js实践，这些实践包括性能，hack,语言应用等&lt;/h5&gt;

&lt;h4 id=&quot;如何写一个你自己的jquery库&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/Lucifier129/Lucifier129.github.io/blob/master/lab/build-your-own-jquery-library.md&quot;&gt;如何写一个你自己的jQuery库？&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;nodejs&quot;&gt;Node.js&lt;/h3&gt;

&lt;h4 id=&quot;better-node-with-es6-pt-i&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://scotch.io/tutorials/better-node-with-es6-pt-i&quot;&gt;Better Node with ES6, Pt. I&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;css&quot;&gt;CSS&lt;/h3&gt;

&lt;h4 id=&quot;use-cases-for-css-vertical-media-queries&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://ishadeed.com/article/vertical-media-queries/?utm_source=hashnode.com&quot;&gt;Use Cases For CSS Vertical Media Queries&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;styling-broken-images&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://bitsofco.de/styling-broken-images/?utm_source=hashnode.com&quot;&gt;Styling Broken Images&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;css-modules&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://css-tricks.com/css-modules-part-3-react/&quot;&gt;Css Modules&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;bemit-taking-the-bem-naming-convention-a-step-further&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://csswizardry.com/2015/08/bemit-taking-the-bem-naming-convention-a-step-further/&quot;&gt;BEMIT: Taking the BEM Naming Convention a Step Further&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;battling-bem-extended-edition-10-common-problems-and-how-to-avoid-them&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.smashingmagazine.com/2016/06/battling-bem-extended-edition-common-problems-and-how-to-avoid-them/&quot;&gt;Battling BEM (Extended Edition): 10 Common Problems And How To Avoid Them&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;itcss-scalable-and-maintainable-css-architecture&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/&quot;&gt;ITCSS: SCALABLE AND MAINTAINABLE CSS ARCHITECTURE&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h3 id=&quot;react&quot;&gt;React&lt;/h3&gt;

&lt;h4 id=&quot;5-essential-reactjs-interview-questions&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.codementor.io/reactjs/tutorial/5-essential-reactjs-interview-questions&quot;&gt;5 Essential React.js Interview Questions&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;automatic-code-splitting-for-react-router-w-es6-imports&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://medium.com/modus-create-front-end-development/automatic-code-splitting-for-react-router-w-es6-imports-a0abdaa491e9#.fypg1bhhn&quot;&gt;Automatic Code Splitting for React Router w/ ES6 Imports&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;webpack-2-tree-shaking-configuration&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://medium.com/modus-create-front-end-development/webpack-2-tree-shaking-configuration-9f1de90f3233#.ens282wg6&quot;&gt;Webpack 2 Tree Shaking Configuration&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;smart-and-dumb-components-in-react&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://jaketrent.com/post/smart-dumb-components-react/?utm_source=hashnode.com&quot;&gt;Smart and Dumb Components in React&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;survivejs-training&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://survivejs.github.io/training/#/?_k=zcsu5v&quot;&gt;SurviveJS Training&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;structora-playground-for-react-apps&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://medium.com/@alex_pustovalov/structor-as-a-playground-for-react-applications-49accf4544b8#.q1hdeenk9&quot;&gt;Structor — a playground for React Apps.&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;9-things-every-reactjs-beginner-should-know&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://camjackson.net/post/9-things-every-reactjs-beginner-should-know&quot;&gt;9 things every React.js beginner should know&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;tips-to-optimise-rendering-of-a-set-of-elements-in-react&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://medium.com/@lavrton/how-to-optimise-rendering-of-a-set-of-elements-in-react-ad01f5b161ae#.d7saul2uh&quot;&gt;Tips to optimise rendering of a set of elements in React&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;automating-documentation-for-your-react-components&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://davidboyne.co.uk/2016/05/26/automating-react-documentation.html&quot;&gt;Automating documentation for your React components&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;leveling-up-with-react&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://css-tricks.com/learning-react-redux/&quot;&gt;Leveling Up with React&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;react-context&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/facebook/react/issues/2517&quot;&gt;React Context&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;react-context-doc&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://facebook.github.io/react/docs/context.html&quot;&gt;React Context Doc&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;react-virtual-dom-vs-incremental-dom-vs-embers-glimmer-fight&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://auth0.com/blog/face-off-virtual-dom-vs-incremental-dom-vs-glimmer/&quot;&gt;React Virtual DOM vs Incremental DOM vs Ember’s Glimmer: Fight&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h5 id=&quot;对比几种主流dom动态更新方案包括virtual-dom-和-incremental-dom以及ember的-glimmer最后指出react在可整合性声明式组件化开发等方面相对做的更好推荐优先采纳从这篇文章可以看出react各方面的优异是一个可以近中期投入的技术&quot;&gt;对比几种主流dom动态更新方案包括Virtual DOM 和 Incremental DOM以及Ember的 Glimmer,最后指出react在可整合性,声明式组件化开发等方面相对做的更好，推荐优先采纳,从这篇文章，可以看出react各方面的优异，是一个可以近中期投入的技术。&lt;/h5&gt;

&lt;h4 id=&quot;change-and-its-detection-in-javascript-frameworks&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://teropa.info/blog/2015/03/02/change-and-its-detection-in-javascript-frameworks.html&quot;&gt;Change And Its Detection In JavaScript Frameworks&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h5 id=&quot;数据变动检测是界面开发的核心问题本文讨论了emberangularreact三种主流框架数据变动检测的方式分别是ember的数据绑定手动负责更新domangular的脏检查定时检查那些已注册进观察对象里的片段如果有变动就更新这些片段react的虚拟dom将界面抽象为虚拟dom树界面变化时-前后虚拟dom对比最小化更新已变动的地方&quot;&gt;数据变动检测是界面开发的核心问题。本文讨论了ember,angular,react三种主流框架数据变动检测的方式，分别是ember的数据绑定，手动负责更新dom；angular的脏检查，定时检查那些已注册进观察对象里的片段，如果有变动，就更新这些片段;react的虚拟dom，将界面抽象为虚拟dom树,界面变化时, 前后虚拟dom对比，最小化更新已变动的地方。&lt;/h5&gt;

&lt;h4 id=&quot;react-fiber-architecture&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ihtml5/react-fiber-architecture&quot;&gt;react-fiber-architecture&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h5 id=&quot;react核心算法探索&quot;&gt;react核心算法探索&lt;/h5&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;react-native&quot;&gt;React Native&lt;/h3&gt;

&lt;h4 id=&quot;react-native动画研究和对比&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://tw93.github.io/2016-04-05/the-thinking-about-react-native-animated.html&quot;&gt;React Native动画研究和对比&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;react-native-blog&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://browniefed.com/&quot;&gt;react native blog&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;react-native-animation-book&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://browniefed.com/react-native-animation-book/&quot;&gt;React Native Animation Book&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;22-amazing-open-source-react-projects&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://medium.mybridge.co/22-amazing-open-source-react-projects-cb8230ec719f#.a8knga9er&quot;&gt;22 Amazing open source React projects&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;building-a-store-locator-with-react-native&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://blog.stamplay.com/building-a-store-locator-with-react-native/&quot;&gt;Building a Store Locator With React Native&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;responsive-design&quot;&gt;Responsive design&lt;/h3&gt;

&lt;h4 id=&quot;media-query-ie8--兼容实现总结&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://mux.alimama.com/posts/686&quot;&gt;media query ie8- 兼容实现总结&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;css3-mediaqueries-js&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ihtml5/css3-mediaqueries-js/&quot;&gt;css3-mediaqueries-js&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h5 id=&quot;css3-mediaqueriesjs-能使得绝大部分浏览器都能支持media-query用法和正常使用媒介查询一样&quot;&gt;css3-mediaqueries.js 能使得绝大部分浏览器都能支持media query,用法和正常使用媒介查询一样&lt;/h5&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;hack&quot;&gt;Hack&lt;/h3&gt;

&lt;h4 id=&quot;a-new-micro-clearfix-hack&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://nicolasgallagher.com/micro-clearfix-hack/&quot;&gt;A new micro clearfix hack&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;styleguide&quot;&gt;Styleguide&lt;/h3&gt;

&lt;h4 id=&quot;baidu-fe-styleguide&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/fex-team/styleguide&quot;&gt;baidu fe styleguide&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;google-styleguide&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/google/styleguide&quot;&gt;google styleguide&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;build-tool-webpackgulprollupbabel&quot;&gt;Build tool (Webpack,Gulp,RollUp,Babel)&lt;/h3&gt;

&lt;h4 id=&quot;阮一峰讲webpack&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ruanyf/webpack-demos&quot;&gt;阮一峰讲webpack&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;babel将es2015的代码转换成什么样子&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/lcxfs1991/blog/issues/9&quot;&gt;babel将es2015的代码转换成什么样子&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;debug&quot;&gt;Debug&lt;/h3&gt;

&lt;h4 id=&quot;chrome-实用调试技巧&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://blog.lxjwlt.com/2016/07/23/chrome.html#directory0100542517940424245&quot;&gt;Chrome 实用调试技巧&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;functional-programming&quot;&gt;functional-programming&lt;/h3&gt;

&lt;h4 id=&quot;functional-programming-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/hemanth/functional-programming-jargon&quot;&gt;functional-programming&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;函数式编程术语解析&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://pinggod.com/2016/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B%E6%9C%AF%E8%AF%AD%E8%A7%A3%E6%9E%90/&quot;&gt;函数式编程术语解析&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
</description>
        <pubDate>Fri, 03 Jun 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/react/2016/06/03/High-quality-front-end-resource.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/react/2016/06/03/High-quality-front-end-resource.html</guid>
        
        
        <category>react</category>
        
      </item>
    
      <item>
        <title>【转载】著名数据可视化网站&amp;博客汇总</title>
        <description>&lt;h3 id=&quot;visualising-data&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.visualisingdata.com/&quot;&gt;Visualising Data&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Visualising Data 是Andy Kirk 创建的比较有名的可视化博客，介绍最新的可视化技术、软件资源和应用实践。&lt;/p&gt;

&lt;h3 id=&quot;information-is-beautiful&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.informationisbeautiful.net/&quot;&gt;Information is beautiful&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Informationisbeautiful 是David McCandless的可视化网站，展示他的精美的可视化作品,颂扬了精美的数据设计。网站还进行可视化竞赛，赞助商们提供数据，可视化爱好者们提交可视化作品，优胜者将获得奖励。&lt;/p&gt;

&lt;h3 id=&quot;flowingdata&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://flowingdata.com/&quot;&gt;Flowingdata&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Flowingdata 是可视化专家Nathan Yau 建立的著名的可视化案例网站，提供了一些令人震惊图表。&lt;/p&gt;

&lt;h3 id=&quot;information-aesthetics&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://infosthetics.com/&quot;&gt;Information Aesthetics&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Information Aesthetics是由Andrew Vande Moere设计和维护的著名可视化案例网站，宗旨是探索信息可视化和创造性设计之间的密切关系。转载了许多细节精致的图表和可视化数据，涉及政治、经济、金融及其他类型。&lt;/p&gt;

&lt;h3 id=&quot;filwd&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://fellinlovewithdata.com/&quot;&gt;FILWD&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;FILWD (Fell in love with data)以享受从数据中获取信息的乐趣为宗旨，并不提供可视化相关的资讯和案例分享，着重于数据可视化的经验分享，致力于在可视化的研究和实践之间建立桥梁。&lt;/p&gt;

&lt;h3 id=&quot;visual-business-intelligence&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.perceptualedge.com/blog/&quot;&gt;Visual Business Intelligence&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Visual Business Intelligence 是和商业图表相关的一个博客，介绍商业图表可视化的案例、设计经验，评论可视化的趋势和资源。&lt;/p&gt;

&lt;h3 id=&quot;datavisualization&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://datavisualization.ch/&quot;&gt;Datavisualization&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Datavisualization 是数据可视化和信息图表的资讯网站，分享可视化资源，发布自身的可视化研究成果，也转载评论他人的优秀案例。&lt;/p&gt;

&lt;h3 id=&quot;视物--致知&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.vizinsight.com/&quot;&gt;视物 | 致知&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;视物·致知是一群热爱信息可视化和数据分析的程序员建立的可视化中文站点，分享最新的可视化案例和经验。&lt;/p&gt;

&lt;h3 id=&quot;图表汇&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://blog.sina.com.cn/huangyu4124&quot;&gt;图表汇&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;图表汇是一个专注于信息图表（INFOGRAPHICS）的学习与分享的主题博客平台，学习和交流信息可视化（InformationVisualization）的理论、技巧和方法，共享信息可视化之美！&lt;/p&gt;

&lt;h3 id=&quot;visualizingorg&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.visualizing.org/&quot;&gt;visualizing.org&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;visualizing.org是面向多种人群的可视化站点，任何人都可以分享、评论可视化作品，创作者可以上传自己的作品，团体组织可以发布自己的数据，学校老师也可以组织一些可视化比赛。&lt;/p&gt;

&lt;h3 id=&quot;visual-complexity&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.visualcomplexity.com/&quot;&gt;Visual complexity&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;visual complexity 是可视化专家Manuel Lima创建的关于复杂网络的可视化博客，致力于研究复杂网络的可视化方法和原则。汇集了大量的工程项目图表。图表都进行了分类并提供缩略图，以便于对海量信息进行检索。&lt;/p&gt;

&lt;h3 id=&quot;number27&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.number27.org/work.html&quot;&gt;number27&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;number27是we feel fine 的作者之一Jonathan Harris创建的博客。他的惊人的作品融合了计算机，人类学，虚拟艺术、叙事等元素。&lt;/p&gt;

&lt;h3 id=&quot;edward-tufte&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.edwardtufte.com/bboard/q-and-a?topic_id=1&quot;&gt;Edward Tufte&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Edward Tufte 介绍了来源广泛的信息可视化图表。每张图表都有独立评注，其中有一些令人难以置信的有趣图片。Edward Tufte是信息图表设计的一代宗师。&lt;/p&gt;

&lt;h3 id=&quot;visually&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://visual.ly/&quot;&gt;visual.ly&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;visual.ly 是非常专业的可视化站点，收集了数千件可视化作品。用户可以搜索可视化实例，上传自己的可视化作品，利用其软件生成自己的图形化简历。&lt;/p&gt;

&lt;h3 id=&quot;many-eyes&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www-958.ibm.com/software/data/cognos/manyeyes/&quot;&gt;Many Eyes&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Many Eyes提供了工具让你创建自己的可视化数据，同时还可浏览别人的作品。他们也拥有一个很大的图库。&lt;/p&gt;

&lt;h3 id=&quot;well-formed-data&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://well-formed-data.net/&quot;&gt;Well-formed Data&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Well-formed Data 这个blog的题材：交互界面设计、信息图形、数据及统计可视化等。所附评注非常有趣，就某些话题进入了深入的探讨。&lt;/p&gt;

&lt;h3 id=&quot;the-new-york-times纽约时报&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.nytimes.com/&quot;&gt;The New York Times纽约时报&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;在The New York Times的网站上花一点力气找到最好的图表绝对是值得的。它们拥有商业领域最好的信息图形，保证平均水平的读者能轻易理解那些实际上非常复杂的数据。&lt;/p&gt;

&lt;h3 id=&quot;cool-infographics&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.coolinfographics.com/&quot;&gt;Cool Infographics&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Cool Infographics 是一个令人敬畏的blog——信息可视化的编年史及大量搜集来的可视化数据。只要你所能想得到的话题，这儿都有。基于tag的架构便于你查找特定类别的图表。&lt;/p&gt;

&lt;h3 id=&quot;simple-complexity最近维护2012614&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://simplecomplexity.net/&quot;&gt;Simple Complexity（最近维护2012.6.14）&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Simple Complexity 这个网站展示了一些简化复杂信息的可视化数据，用一种易于理解的方式来体现他们的真实意图。也包括一些关于如何图表优化的教程。&lt;/p&gt;

&lt;h3 id=&quot;strange-maps&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://strangemaps.wordpress.com/&quot;&gt;Strange Maps&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Strange Maps 上有许多基于图表的地图，涵盖古今。地图里所带的标注，其中最有趣的是那些历史地图。&lt;/p&gt;

&lt;h3 id=&quot;wall-stats&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.wallstats.com/blog/&quot;&gt;Wall Stats&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Wall Stats 用海报招贴的形式制作了“美国个人可自由支配收入的统计”图表。它们还提供了其他关于政治及经济议题的图表。&lt;/p&gt;

&lt;h3 id=&quot;data-mining&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://datamining.typepad.com/&quot;&gt;Data Mining&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Data Mining 涉及的领域为数据可视化、社会化媒体和数据挖掘。这个Blog从包括《美国国家地理》及《经济学人》在内的其它媒体上聚合了大量的信息可视化图形。&lt;/p&gt;

&lt;h3 id=&quot;infographics-news&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://infographicsnews.blogspot.com/&quot;&gt;Infographics News&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Infographics News主要提供新闻类信息可视化图像，也发布了一些和新闻相关的不同寻常的图表&lt;/p&gt;

&lt;h3 id=&quot;chart-porn&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://chartporn.org/&quot;&gt;Chart Porn&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Chart Porn 提供来至全国各地的图示和图表，设计精美，涉及广泛。按话题分类，易于检索。&lt;/p&gt;

&lt;h3 id=&quot;behance-network&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.behance.net/?page=1&amp;amp;time=all&amp;amp;location=&quot;&gt;Behance Network&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;网站 Behance Network 基于Tag机制，内容涉及信息架构及其他一些特定类型。可以按作者进行检索。&lt;/p&gt;

&lt;h3 id=&quot;good-magazine&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.good.is/magazine&quot;&gt;Good Magazine&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Good Magazine 推荐了一些极有趣的原创图表，从“水危机”到“食品券的增长”到“奥巴马对投票率的影响”。&lt;/p&gt;

&lt;h3 id=&quot;matthew-ericson&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ericson.net/content/&quot;&gt;Matthew Ericson&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;这个BLOG展示了图表设计师Matthew Ericson及其他人的创作作品。&lt;/p&gt;

&lt;h3 id=&quot;nixlog-infographics&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.nixlog.com/infographics&quot;&gt;NiXLOG Infographics&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;NiXLOG 上从互联网上聚合了大量信息可视化的内容，还包括一份原创图表：关于苹果电脑及其消费观如何普及的演变历程。&lt;/p&gt;

&lt;h3 id=&quot;virtual-water&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.traumkrieger.de/virtualwater/&quot;&gt;Virtual Water&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Virtual Water是一个专业blog，主题是用水量的统计。他们用招贴的形式展现信息并（全部或部分地）出版发行。&lt;/p&gt;

&lt;h3 id=&quot;history-shots&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.historyshots.com/index.cfm&quot;&gt;History Shots&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;History Shots是一个商业网站，出售各种主题的数据图表及可视化产品（招贴、明信片等）。他们的主要提供历史事件、时代及包括政治、军事、体育或其它有趣科目在内的数据图表。这是一个相当有趣的网站，你可以在屏幕赏缩放图片进行浏览。&lt;/p&gt;

&lt;h3 id=&quot;nicolasrappcom&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://nicolasrapp.com/&quot;&gt;Nicolasrapp.com&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;nicolasrapp.com 是一个信息设计blog，其作者为美联社进行创作。&lt;/p&gt;

&lt;h3 id=&quot;dataviz&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://dataviz.tumblr.com/&quot;&gt;DataViz&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;DataViz 搜集了许多漂亮的数据化设计。尽管没有标注，但是那些图片已经完全足够说明自己了。&lt;/p&gt;

&lt;h3 id=&quot;igraphics-explained&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://igraphicsexplained.blogspot.com/&quot;&gt;iGraphics Explained&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;iGraphics Explained –对于图表和数据可视化的有效性和制作方式，这个blog希望能阐明一些启示。他们展示了一些来至互联网的精美图表，这是一个启发创意的好去处，你还可以在这里认识到哪些图表形式是有效，而哪些不是的。&lt;/p&gt;

&lt;p&gt;信息图形的Flickr群组 
Flickr 群组可以成为信息和灵感的源泉。下面案例中的图表，大部分来至世界各地的不同时期。这是一个获取想法和感知全球图表设计趋势的好地方。&lt;/p&gt;

&lt;h3 id=&quot;infografia--infographics&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.flickr.com/groups/infografias/&quot;&gt;Infografia | Infographics&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;拥有700多张图表的群组，由120多位成员上传。&lt;/p&gt;

&lt;h3 id=&quot;infografistascom--infographics-news&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.flickr.com/groups/856209@N23/&quot;&gt;Infografistas.com / Infographics News&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;拥有350个类目的发布，来源的种类繁多。&lt;/p&gt;

&lt;h3 id=&quot;visual-information&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.flickr.com/groups/visualinformation/&quot;&gt;Visual Information&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;包含650类目的群组。从餐馆到图书馆地图都有。&lt;/p&gt;

&lt;h3 id=&quot;the-info-graphics-pool&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.flickr.com/groups/16135094@N00/pool/&quot;&gt;The Info Graphics Pool&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;这个可能是Flickr里这一类群组中规模最大的了，拥有超过700名成员和1800个类目。&lt;/p&gt;
</description>
        <pubDate>Wed, 20 Apr 2016 10:53:00 +0000</pubDate>
        <link>http://bencentra.github.io/datav/2016/04/20/datav-resource.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/datav/2016/04/20/datav-resource.html</guid>
        
        <category>d3</category>
        
        <category>javascript</category>
        
        
        <category>datav</category>
        
      </item>
    
      <item>
        <title>帮助你提升react技能的一些资源(译文)</title>
        <description>&lt;p&gt;React.js是&lt;a href=&quot;http://www.facebook.com&quot;&gt;facebook&lt;/a&gt;的一个开源项目。根据分析库使用的服务统计数据，大量的网站和应用使用react；例如比较有名的Netflix,Imgur和Feedly已经在使用它，这也证明了react的潜力。&lt;/p&gt;

&lt;p&gt;强大的javascript的库是一个很好的工具，可以构建出现代可靠的网站和应用。否则，如果使用第三方库，即使开发者投入很多精力去学习实践，也很难说能够有一个好的产出。&lt;/p&gt;

&lt;p&gt;对于那些寻找学习react资料的初学者，我们已经收集了一系列有用的工具，资源和文章，这些资料可以帮助你们快速，简单地学会基本的react，甚至可以构建出有价值的东西。下面这些入门资料可以给你一些帮助。&lt;/p&gt;

&lt;h4 id=&quot;快速简单地学会reactjs&quot;&gt;&lt;strong&gt;快速简单地学会react.js&lt;/strong&gt;&lt;/h4&gt;

&lt;h4 id=&quot;jsfiddle&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.jsfiddle.net&quot;&gt;jsfiddle&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://www.jsfiddle.net&quot;&gt;jsfiddle&lt;/a&gt;是一个你可以获得技巧和很多开发经验的训练场。它分为几块区域支持在线预览。可以将你的代码块分享给你的朋友们
&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/1-jsfiddle.jpg&quot; alt=&quot;jsfiddle&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;touchstonejs&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://touchstonejs.io/&quot;&gt;TouchstoneJS&lt;/a&gt;&lt;/strong&gt;&lt;/h5&gt;

&lt;p&gt;&lt;a href=&quot;http://touchstonejs.io/&quot;&gt;TouchStone.js&lt;/a&gt;是一个使用react.js开发的框架。它给你提供了开发混合应用的一些必要工具，包括强大，功能丰富的组件库，使用这些组件你可以构建界面优雅，结构清晰，底层功能强大的混合应用。
&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/2-TouchStone-JS.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;elemental-ui&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/elementalui/elemental&quot;&gt;Elemental UI&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/elementalui/elemental&quot;&gt;Elemental&lt;/a&gt;是一系列符合Material Desgin规范的工具。你可以通过react组件的style属性重写默认的主题
&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/4-MaterialUI.jpg&quot; alt=&quot;Material UI&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;react-toolbox&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/react-toolbox/react-toolbox&quot;&gt;React Toolbox&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/react-toolbox/react-toolbox&quot;&gt;React Toolbox&lt;/a&gt;结合了Material Desgin和React.js 和前一个例子有许多地方很像，the library comprises integral elements that owe their beauty to brand new Google Design language。它使用了css modules,webpack和es6.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/5-ReactToolbox.jpg&quot; alt=&quot;React Toolbox&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;react-topui&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/kjda/react-topui&quot;&gt;React TopUI&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/kjda/react-topui&quot;&gt;React TopUI&lt;/a&gt;是一个小集合符合大部分标准的界面。有不同版本的按钮（从icon按钮到菜单按钮），列表，导航，各种各样的输入框，通知，开关切换和数值等&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/6-ReactTOPUI.jpg&quot; alt=&quot;React TopUI&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;react&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://facebook.github.io/react&quot;&gt;React&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;这是一个官方网站，包括一切你初学react这个强大javascript库所需要的一切资料。用户可以浏览它大量的文档，获得在线支持，获得有价值的资源。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/7-React-768x432.jpg&quot; alt=&quot;react&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;react-rocks&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://react.rocks/&quot;&gt;React Rocks&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://react.rocks&quot;&gt;React Rocks&lt;/a&gt; 是一个react在线项目集。它包含手册和各种各样的资源开发者可以拿来即用的。这一切以grid的形式组织。为了你可以快速浏览项目目录找到你需要的解决方案。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/8-ReactRocks-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;learning-reactjs-getting-started-and-concepts&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://scotch.io/tutorials/learning-react-getting-started-and-concepts&quot;&gt;Learning React.js: Getting Started and Concepts&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;这是一本完全指南，引导你通过一步步的技术学习，包括从创建页面到学习规范。它展示了如何有效的使用这个库并且构建原始的想法。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/9-LearningReact-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;the-reactjs-way-getting-started-tutorial&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://blog.risingstack.com/the-react-way-getting-started-tutorial/&quot;&gt;The React.js Way: Getting Started Tutorial&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;这是在我们资源列表中另一个充分考虑新手特点的手册。第一部分带你浏览基本的理论，涵盖了所有重要的点包括虚拟dom；第二部分展示了如何构建一个应用程序，涉及到&lt;a href=&quot;https://facebook.github.io/immutable-js/&quot;&gt;immutable.js&lt;/a&gt;如何辅助你开发这个程序。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/10-TheReactjsWay-768x432.jpg&quot; alt=&quot;The React.js Way: Getting Started Tutorial&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;build-a-reactjs-application-with-user-authentication&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://stormpath.com/blog/build-a-react-app-with-user-authentication/&quot;&gt;Build a React.js Application With User Authentication&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Robin Orheden描述一个简单程序，这个程序能够让用户登录，注册，和做其他事情。你将使用Stormpath React SDK来增加这些特征并且增强项目的认证功能。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/11-BuildaReactjsApplication-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;reactjs-program&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.reactjsprogram.com/&quot;&gt;React.js Program&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;React.js Program是一系列的在线课程，适合初学者学习。它包含了所有学习React的基础包括javascript,React，React Router,Webpack和Npm.共计12课时
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/12-ReactjsProgram-768x432.jpg&quot; alt=&quot;React.js Program&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;navigating-the-reactjs-ecosystem&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.toptal.com/react/navigating-the-react-ecosystem&quot;&gt;Navigating the React.JS Ecosystem&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Tomas Holas对react生态的读者很熟悉。使你感到很舒服。这篇文章主要围绕react的结构，架构和理论，每一部分都用代码片段来说明，使得阐述更加清晰。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/13-NavigatingtheReactJSEcosystem-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;build-with-react&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://buildwithreact.com/&quot;&gt;Build with React&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://buildwithreact.com/&quot;&gt;Build with React&lt;/a&gt;因为每天更新有关react的文章和期刊而知名。它是一个被组织的很好的react相关的优秀资源。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/14-BuildwithReact-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;a-comprehensive-guide-to-building-apps-with-reactjs&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://tylermcginnis.com/reactjs-tutorial-a-comprehensive-guide-to-building-apps-with-react/&quot;&gt;A Comprehensive Guide to Building Apps with React.js&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;这篇文章呈现了通过React.js开发移动应用的基本步骤。它致力于改善你的技能和了解一些有价值的工具比如webpack，Babel，Gulp和Browserify，这些工具经常和react.js一块用。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/15-AComprehensiveGuidetoBuildingAppswithReact-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;react-fundamentals&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://tylermcginnis.com/reactjs-tutorial-a-comprehensive-guide-to-building-apps-with-react/&quot;&gt;React Fundamentals&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;这是一系列视频基本涵盖了所有重要的点。有18节课。为了不占用你太多的时间，每节课程仅有几分钟。它也可以被当做高级的教学材料。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/16-ReactFundamentals-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;reactjs---a-guide-for-rails-developers&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.airpair.com/reactjs/posts/reactjs-a-guide-for-rails-developers&quot;&gt;React.js - A guide for Rails developers&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;这篇文章主要针对那些熟悉Rails，想将它与React.js结合的人。这两项技术能够产生出了不起的结果。费尔南多·比利亚洛沃斯急于告诉你，你应该在哪里开始，你该怎么办。
&lt;img src=&quot;http://www.onextrapixel.com/wp-content/uploads/2016/04/17-ReactjsAGuideforRailsDevelopers-768x432.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;comprehensive-beginners-guide-to-reactjs&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://lockerdome.com/echojs.com/7827180847628308&quot;&gt;Comprehensive Beginner’s Guide To ReactJS&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;适合所有新手的指南，这本手册的重点也是这个框架的基本概念。因为作者在React和Angular丰富的经验。这篇文章将这两种解决方案，巧妙的结合在一起。
&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/18-ComprehensiveBeginnersGuidetoReactjs.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;the-reactjs-bible&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.stanleycyang.com/tutorials/the-reactjs-bible&quot;&gt;The ReactJS Bible&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://www.stanleycyang.com/tutorials/the-reactjs-bible&quot;&gt;The ReactJS Bible&lt;/a&gt;是学习facebook顶级开源项目的优秀工具。了解一些新的。通过三个小时的视频，它形成了一些核心规则。你将了解到怎么构建部件，一个可重用的组件，和一个客户端以及一些其他有趣的事。
&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/19-TheReactJSBible.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;5-practical-examples-for-learning-the-react-framework&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://tutorialzine.com/2014/07/5-practical-examples-for-learning-facebooks-react-framework/&quot;&gt;5 Practical Examples For Learning The React Framework&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;如果你已经锁定了初学者手册并且准备一直学习下去，这个时候你应该看下这篇文章信息。它提供了五种理发来巧妙地展现这个框架的潜力。
&lt;img src=&quot;http://cdn.onextrapixel.com/wp-content/uploads/2016/04/20-PracticalExamplesforLearningReact.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;&lt;strong&gt;CONCLUSION&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;从官方网站以及全面的指南到一些高级的工具，我们列出了所有必备的东西，这些东西可以扩展你的知识并且能够更新你的React.js技巧。如果你知道一些其他有用的手册，解决方案和工具能够帮助你构建出色的网站和应用，请联系我们。&lt;a href=&quot;http://www.onextrapixel.com/2016/04/20/increase-knowledge-of-react-js-with-these-helpful-resources/?utm_source=hashnode.com&quot;&gt;原文地址&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Wed, 20 Apr 2016 00:00:00 +0000</pubDate>
        <link>http://bencentra.github.io/react/2016/04/20/Helpful-Resources.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/react/2016/04/20/Helpful-Resources.html</guid>
        
        
        <category>react</category>
        
      </item>
    
      <item>
        <title>有关数据可视化的一些网站(转载)</title>
        <description>&lt;h3 id=&quot;website&quot;&gt;&lt;strong&gt;Website&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;http://blogger.ghostweather.com/search/label/d3&quot;&gt;Teaching a Semester of D3.js&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://arnicas.github.io/interactive-vis-course/index.html&quot;&gt;Interactive Data Vis Course Repo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ourd3js.com/wordpress/&quot;&gt;OUR D3.JS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jsdatav.is/&quot;&gt;Data Visulization with JavaScript &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://computational-thinking.farbox.com/&quot;&gt;FrankWang&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;books&quot;&gt;&lt;strong&gt;Books&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;Roger Spence，信息可视化-交互设计，机械工业出版社，2012。（主要参考书）&lt;/li&gt;
  &lt;li&gt;E. Tuffe，Envisioning Information，Chinese Press，1990&lt;/li&gt;
  &lt;li&gt;Colin Ware, Information Visualization: Perception for Design, Morgan-Kaufman, 2004&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ituring.com.cn/book/1126&quot;&gt;《数据可视化实战：使用D3设计交互式图表》&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ituring.com.cn/book/1012&quot;&gt;《视不可当：信息图与可视化传播》&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ituring.com.cn/book/819&quot;&gt;《鲜活的数据：数据可视化指南》&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ituring.com.cn/book/1017&quot;&gt;《图解力：跟顶级设计师学作信息图》&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
        <pubDate>Mon, 18 Apr 2016 08:43:59 +0000</pubDate>
        <link>http://bencentra.github.io/datav/2016/04/18/datav.html</link>
        <guid isPermaLink="true">http://bencentra.github.io/datav/2016/04/18/datav.html</guid>
        
        <category>d3</category>
        
        <category>javascript</category>
        
        
        <category>datav</category>
        
      </item>
    
  </channel>
</rss>
