reactjs 使用JavaScript类在REACT中创建全局状态

14ifxucb  于 2023-05-28  发布在  React
关注(0)|答案(1)|浏览(182)

我的任务是在react中创建一个全局状态。我被指示使用JavaScript类来实现此目的。这可能吗?JavaScript类可以用来在REACT中创建全局状态吗?我还是一个初级开发人员,对此没有任何经验。
我们使用的是旧版本的REACT,我们使用CLASS组件。
这是我遇到的模式,但我不知道这是否有用。

class State {
  state;
  constructor() {
    this.state = {};
  }

  setState(newState) {
    this.state = { ...this.state, ...newState };
  }

  getState() {
    return this.state;
  }
}
gwo2fgha

gwo2fgha1#

理想情况下,全局状态是您想要避免的。
现在的Javascript有一种叫做模块的东西,这使得对全局状态的需求通常是多余的。
以你为例->
state.js

class State {
  state;
  ......
}

export const state = new State()

consumer.js

import {state} from "./state";

state.setState({});

注意:从HTML中使用模块需要您使用类型module加载初始JS文件。
例如。

<script type="module" src="./consumer.js"/>

最后,如果global状态是绝对必要的,那么使用window全局变量是放置它们的常见地方。

class State {...}

window.myState = new State();

然后...

window.myState.setState({});

如果你的代码打算在Node和Web中工作,你也可以使用globalThis

globalThis.myState = new State();

相关问题