我看过很多教程,其中的代码建议执行以下操作:

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

10-06 04:22