gpt4 book ai didi

javascript - React 类属性初始化器的优点/缺点

转载 作者:行者123 更新时间:2023-11-30 14:35:04 24 4
gpt4 key购买 nike

使用 React,我知道您可以像这样初始化组件状态:

class Foo extends Component {
constructor() {
super();

this.state = { count: 0 };
}
}

如果 state 需要用 props 初始化:

class Foo extends Component {
constructor(props) {
super(props);

this.state = { this.props.count: 0 };
}
}

但是,使用 transform-class-properties 插件,您可以像这样初始化状态:

class Foo extends Component {
state = { count: 0 };
}

由于this在构造时引用了类下的实例,所以初始状态仍然可以使用props:state = { this.props.count: 0 }

除了行数更少的明显好处外,我还想知道这种语法的优点/缺点。

*示例不包括类方法的绑定(bind),因为我知道在使用粗箭头语法声明这些方法时可以完成绑定(bind)。

最佳答案

优点:

  • 更少的代码,更隐式

缺点:

  • 你不能像使用构造函数那样做任何一步一步的计算

例如

constructor(props){
super(props)

const z = props.x - props.y;
const g = props.a + props.b;
const total = z ** g;
const shouldBeOpened = total > 1000;

this.state = {
shouldBeOpened,
initialSomething: z > g,
}
}

关于javascript - React 类属性初始化器的优点/缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50553357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com