我看过很多教程,其中的代码建议执行以下操作:
var App = React.createClass({
someFunction() { .. },
render() { return(); },
});
var Lication = React.createClass({
someOtherFunction() { .. },
render() { return(); },
});
...但是我一直在使用ES6语法:
class App extends Component {
someFunction() { .. }
render { return(); }
}
在哪里创建
Lication
类?就在App类下方?还是需要它自己的文件,并使用以下内容将其导入主文件:var Lication = require('./Lication');
我还没有看到使用多个类的代码。
最佳答案
使用ES6类或React的createClass
函数对必须在哪里定义它们没有任何规则。两者都可以在另一个之上或在不同文件中定义。
使用ES6类影响代码顺序的一种方法是hoisting:
这意味着这样的东西是无效的:
var l = new Lication(); // ReferenceError
class Lication {}
至于是否将代码拆分为文件,这是有效的:
class App extends React.Component {
// ...
}
class Lication extends React.Component {
// ...
}
这也是:
class App extends React.Component {
// ...
}
var Lication = require('path-to-lication-class');
Lication
将在其自己的文件中定义并导出:class Lication extends React.Component {
// ...
}
module.exports = Lication;
最后一个示例实质上等效于:
class App extends React.Component {
// ...
}
var Lication = class Lication extends React.Component {
// ...
}
拆分成文件是为了在代码中实现模块化,将单个组件拆分为文件(或模块),这样它们可以更容易维护,并且整个应用程序在开发时不会挤入一个巨型文件中,而在部署时会合并在一起。
这是一个useful read on classes