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} />
}