Javascript 在存储更改时如何记忆组件?
我的应用程序组件中有一个模式,但每次redux商店更改时,模式都会自动更新 模态需要非常昂贵的计算,当模态不可见时,不需要更新模态 我必须尝试React.memo,但当模态组件具有类似于Javascript 在存储更改时如何记忆组件?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我的应用程序组件中有一个模式,但每次redux商店更改时,模式都会自动更新 模态需要非常昂贵的计算,当模态不可见时,不需要更新模态 我必须尝试React.memo,但当模态组件具有类似于useSelector <App> <Modal visible={visible} onClose={onClose} />//it cause perform issue </App> 我只想在模态组件不可见时不更新它 一些简化的代码 app.jsx function
useSelector
<App>
<Modal visible={visible} onClose={onClose} />//it cause perform issue
</App>
我只想在模态组件不可见时不更新它
一些简化的代码
app.jsx
function counter(state = 0, action) {
switch (action.type) {
case "random":
return Math.random();
default:
return state;
}
}
const store = createStore(counter);
function App() {
const num = useSelector(s => s);
const dispatch = useDispatch();
const callback = useCallback(() => {
dispatch({ type: "random" });
}, [dispatch]);
return (
<div className="App">
<button onClick={callback}>dispatch</button>
<h2>{num}</h2>
<Memo />
</div>
);
}
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById("root")
);
功能计数器(状态=0,动作){
开关(动作类型){
案例“随机”:
返回Math.random();
违约:
返回状态;
}
}
常量存储=创建存储(计数器);
函数App(){
const num=使用选择器(s=>s);
const dispatch=usedpatch();
const callback=useCallback(()=>{
分派({type:“random”});
},[发送];
返回(
派遣
{num}
);
}
ReactDOM.render(
在App.js组件中,在初始状态下设置一个布尔属性,如下所示
this.state = {
show: false
}
然后您可以编写一个函数,在调用该函数时更改“show”的值
function showModal(){
this.setState({
...state,
show : !this.state.show
})
}
之后,您可以如下所示设置模态
<Modal show={this.state.show} onHide={this.showModal} />
在App.js组件中,在初始状态下设置一个布尔属性,如下所示
this.state = {
show: false
}
然后您可以编写一个函数,在调用该函数时更改“show”的值
function showModal(){
this.setState({
...state,
show : !this.state.show
})
}
之后,您可以如下所示设置模态
<Modal show={this.state.show} onHide={this.showModal} />
每次模态不可见时卸载模态如何?仅供参考,术语是memoize
,而不是memory
React。memo
功能等同于PureComponent
。每次模态不可见时卸载模态如何?仅供参考,术语是memoize
,而不是memory
React.memo
功能等同于PureComponent
。