类中的状态和对象之间是否有重要区别?

时间:2018-07-03 09:09:51

标签: javascript reactjs

让我展示我的意思:

class Example extends Component {
  constructor(props){
    super(props);
    this.state = {
      prop: 0
    }
  }
  prop = 0;
  
  changeProp = () => {
    this.setState({
      prop: 5
    });
    this.prop = 5
  }

state.prop和prop都可以使用,两者都可以更改,所以它们之间的主要区别是什么?

2 个答案:

答案 0 :(得分:2)

从技术上说,可以通过直接写入this.state来更改状态,但不会导致Component 重新呈现,并且通常会导致状态不一致

此外,要记住的是setState是异步的。 allows使我们可以在单个作用域中多次调用setState,而不会触发整个树的重新渲染

答案 1 :(得分:-1)

可以通过this.setState修改状态,这将触发重新渲染。但是您不应该,也不能在组件中修改this.props

状态用于组件内,只有组件本身与它的值有关。但是,道具是从其父级接收的,该组件只能从其读取并进行渲染。