由于从React v15.5以后,createClass
从React
中拆分出来,所以需要对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
的参数,有想知道的可以在文末评论,到时候我把发现过程补上。
结束