Javascript 在存储更改时如何记忆组件?

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

我的应用程序组件中有一个模式,但每次redux商店更改时,模式都会自动更新

模态需要非常昂贵的计算,当模态不可见时,不需要更新模态

我必须尝试React.memo,但当模态组件具有类似于
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