返回

Ts + React + Mobx 开发移动端控制台

前端

自从使用 TypeScript 写 H5 小游戏后,就对 Ts 产生了依赖(智能提示以及友好的重构提示),但对于其 Type System 还需要更多的实践。最近开发 H5 小游戏,在移动端调试方面,为求方便没有采用 inspect 的模式。用的是粗暴的 vConsole,用了 vConsole 的一大好处就是移动端可以使用这个功能。只不过,它需要调试时候引入这个模块。并且 vConsole 用法偏向于 C 端开发,小游戏的 C 端开发使用比较舒服,但 B 端的开发就比较难用了。

Ts + React + Mobx 实现移动端控制台

  1. 安装依赖
npm install --save vconsole react-vconsole
  1. 初始化 vConsole
import * as VConsole from 'vconsole';

const vConsole = new VConsole();
  1. 集成到 React 中
import React, { Component } from 'react';

class App extends Component {
  render() {
    return (
      <div>
        <VConsole />
      </div>
    );
  }
}

export default App;
  1. 使用 Mobx 来管理状态
import { observable, action, computed } from 'mobx';

class Store {
  @observable isConsoleOpen = false;

  @action
  toggleConsole() {
    this.isConsoleOpen = !this.isConsoleOpen;
  }

  @computed
  get consoleClassName() {
    return this.isConsoleOpen ? 'vconsole-open' : 'vconsole-closed';
  }
}

const store = new Store();
  1. 使用 React 组件来渲染控制台
import React, { Component } from 'react';
import { observer } from 'mobx-react';

@observer
class Console extends Component {
  render() {
    const { store } = this.props;

    return (
      <div className={store.consoleClassName}>
        <VConsole />
      </div>
    );
  }
}

export default Console;
  1. 在 App 中使用控制台组件
import React, { Component } from 'react';
import Store from './Store';
import Console from './Console';

class App extends Component {
  render() {
    const store = new Store();

    return (
      <div>
        <Console store={store} />
      </div>
    );
  }
}

export default App;

总结

使用 Ts + React + Mobx 实现移动端控制台可以大大提高开发和调试的效率。特别是对于 B 端开发来说,vConsole 的功能和界面更加友好。Mobx 可以帮助我们轻松地管理控制台的状态。

注意事项

  1. 在使用 vConsole 时,需要确保在生产环境中将其禁用,以免泄露敏感信息。
  2. 在使用 Mobx 时,需要避免在组件中直接修改状态,而是通过 action 来修改。
  3. 在使用 Ts 时,需要对类型系统有足够的了解,以避免出现类型错误。

扩展阅读

  1. vConsole 官网
  2. React-VConsole 文档
  3. Mobx 文档
  4. TypeScript 文档