0.14 更新概况

#1

国庆假期最后一天更新的… 有同学整理过了. 我只是拣重要的复述一下:




大的改变:

  • 模块拆分, reactreact-dom 分开了, 包括 addons 被分成了 5 个以上模块
  • this.refs.name 可以直接拿到 DOM 了, 旧的代码需要更新
  • 无状态的组件可以直接用函数来生成

其他还有一些小的 JSX Babel 编译器优化和 API 调整, 具体看最后一篇正式发布的文章.

1 Like
#2

我自己的项目又把 React 和 ReactDOM 包到一起去了。。。

var {React, ReactDOM} = require('react-pack');
#3

发现一个邪门写法, 服务端渲染的几个 API 被独立出来了, 需要引用这个文件 react-dom/server

The react-dom package contains ReactDOM.render, ReactDOM.unmountComponentAtNode, and ReactDOM.findDOMNode, and in react-dom/server we have server-side rendering support with ReactDOMServer.renderToString and ReactDOMServer.renderToStaticMarkup.

#4

发现更新到0.14后,用addons比如’react-addons-update’

import React from 'react'
import update form 'react-addons-update'

会导致webpack把多余的重复的react代码也打包进去,我的个人项目,才完成一个模块,打包出300多K,而且vendor已经被分离出来了。等React报出可能有多个react混在里面的错误后意识到了这点。

现在我在production下的webpack配置里加上了这个:

externals: {
  'react': 'React',
  'react-router': 'ReactRouter',
  'react-dom': 'ReactDOM',
  'redux': 'Redux',
  'react-redux': 'ReactRedux',
  'socket.io-client': 'io',
  'react-addons-shallow-compare': 'React.addons.shallowCompare', // new
  'react-addons-transition-group': 'React.addons.CSSTransitionGroup', // new
  'react-addons-update': 'React.addons.update' // new
}

打包出来200K不到了。不知道有没有碰到类似情况的,或者有更好的解决办法?

#5

怀疑项目里打包了过个 React 版本.
我有遇到模块里依赖 0.13 然后根目录装的是 0.14 , 结果有个 warning, 发现有两份 React