Reactjs 在构造函数或声明中初始化变量

Reactjs 在构造函数或声明中初始化变量,reactjs,typescript,Reactjs,Typescript,在将ReactJS与TypeScript一起使用时,是在构造函数中初始化类变量更好,还是在声明类变量时更好?无论哪种方式,它都可以正常工作,传输的javascript看起来都一样 export class MyClass extends React.Component<iProps, {}> { private myName: string = "Hello"; constructor(props: iProps) { super(prop

在将ReactJS与TypeScript一起使用时,是在构造函数中初始化类变量更好,还是在声明类变量时更好?无论哪种方式,它都可以正常工作,传输的javascript看起来都一样

export class MyClass extends React.Component<iProps, {}> {
      private myName: string = "Hello";

      constructor(props: iProps) {
         super(props);

         this.myName= "Hello";
      }
}
导出类MyClass扩展React.Component{
private myName:string=“Hello”;
建造师(道具:iProps){
超级(道具);
this.myName=“Hello”;
}
}

完全相同,例如:

class MyClass1 {
      private myName: string = "Hello";
}
汇编至:

var MyClass1 = (function () {
    function MyClass1() {
        this.myName = "Hello";
    }
    return MyClass1;
}());
var MyClass2 = (function () {
    function MyClass2() {
        this.myName = "Hello";
    }
    return MyClass2;
}());
以及:

汇编至:

var MyClass1 = (function () {
    function MyClass1() {
        this.myName = "Hello";
    }
    return MyClass1;
}());
var MyClass2 = (function () {
    function MyClass2() {
        this.myName = "Hello";
    }
    return MyClass2;
}());
()

正如您所看到的,编译后的版本是相同的(除了类名)。
所以你可以用你觉得更优雅的

对于react,您可以使用传递给构造函数的道具。
当将es6样式的类与react组件一起使用时,初始状态将在构造函数中分配,而不是使用
getInitialState
方法。

如果您的初始状态是props的函数,那么您需要在构造函数中使用它们。

在我看来,这两种方法都是错误的,因为props的要点是,它们在每次渲染时都会传入一次,而不是在第一次构造类时传入。初始props会传递给ctor,所以是的,这两种方法都应该有效。这里可能没有对/错,但我总是更喜欢在ctor中设置成员值,因为在我看来,这使代码更容易理解。@TomFenech-是的,我从问题中删除了支柱。