Javascript react如何在内部检测组件中的更改?

Javascript react如何在内部检测组件中的更改?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,一个组件如何知道,它的道具被改变了,这样它就可以重新渲染 例如: 功能组件(道具){ return{this.props.childVar} } 函数parentComp(){ 让parentVar=0; 设置超时(()=>{ parentVar++; //在执行此语句后到重新呈现子组件之间会发生什么? }, 1000) 返回 } 在您的代码片段中,子组件永远不会重新呈现,因为您所做的只是更改一个局部变量,子组件永远不会知道这一点。所以,简短的回答是,组件不知道道具是否已更改 组件重新渲染有两个

一个组件如何知道,它的道具被改变了,这样它就可以重新渲染

例如:

功能组件(道具){
return{this.props.childVar}

} 函数parentComp(){ 让parentVar=0; 设置超时(()=>{ parentVar++; //在执行此语句后到重新呈现子组件之间会发生什么? }, 1000) 返回 }
在您的代码片段中,子组件永远不会重新呈现,因为您所做的只是更改一个局部变量,子组件永远不会知道这一点。所以,简短的回答是,组件不知道道具是否已更改

组件重新渲染有两个原因:

  • 调用了此.setState
  • 重新渲染的父组件

  • React的API最重要的一个方面是它是声明性的,您不必担心何时以及如何捕获和处理更改

    基本上,每次调用时,都会生成不同的react元素树,react将比较新旧树,并在必要时进行更改

    从组件的角度来看,实例本身不知道树、更改和更新。毕竟,它只是一个基于参数(props)和局部状态(如果有)返回react元素的函数


    你可以在

    中阅读更多关于它的信息,我认为它可能会有用。答案是ty。但我更感兴趣的是,在react进入其协调过程之前,了解一下发生了什么。当组件获得新道具或其状态发生更改时,将调用
    渲染
    function component(props){
      return <p>{this.props.childVar}</p>
    }
    
    function parentComp(){
      let parentVar = 0;
    
       setTimeout(()=>{
        parentVar++;
        //what happens between: after this statement is executed and till the child component is re-rendered ?
      }, 1000)
      return <component childVar={parentVar} />
    }