自动化手段将React v0.14迁移到React v16(一)

由于从React v15.5以后,createClassReact中拆分出来,所以需要对React.createClass进行转换。
我们使用的工具是:react-codemod

// -------转换前------
var React = require('react')
React.createClass({...})

如果使用了babel,可以转换成ES6,使用命令:
sudo jscodeshift -t [react-codemod项目路径]/transforms/class.js [目标文件夹]

// -------转换后------
var React = require('react')
class XXX extends React.Component{
  ...
}

项目中如果用到React的SSR,不给nodejs端配置babel的话,nodejs无法原生支持ES Module,这个时候就还是要按照commonjs的转换,使用命令:
sudo jscodeshift -t [react-codemod项目路径]/transforms/class.js [目标文件夹] --conversion=false

// -------转换后------
var createReactClass = require('create-react-class');
createReactClass({...})

文档中并没有介绍class.js的参数,有想知道的可以在文末评论,到时候我把发现过程补上。
结束

你可能感兴趣的:(自动化手段将React v0.14迁移到React v16(一))