当前位置: 首页 > 知识库问答 >
问题:

React JS最佳实践

太叔昊穹
2023-03-14

我计划使用我的状态作为一种信号形式,我将来回改变以显示我的加载屏幕、主窗体和成功或错误消息。但不确定这是否是最佳实践。下面是一个示例代码

div hidden={this.state.FormStatus.statusMode !== "Loading"}>
          <LoadingScreen />
        </div> 

div hidden={this.state.FormStatus.statusMode !== "Main"}>
          <MainForm/>
        </div> 

但我不确定这是否是最好的方法,我担心这会减慢我的应用程序或消耗客户机的CPU。你能推荐更好的方法吗?

共有2个答案

鄢修德
2023-03-14

不确定性能改进如何超过你正在做的事情,但这里有一个想法。

render() {
  const { FormStatus: { statusMode } } = this.state;
  const component = { Loading: <LoadingScreen />, Main: <MainForm /> };

  return component[this.state.FormStatus.statusMode];
}

记录在案,你现在做的很好。唯一真正的改进是只渲染一个div,而不是两个。

华展鹏
2023-03-14
render() {
  const { statusMode } = this.state.FormStatus;

  if (statusMode === 'Loading') {
    return <LoadingScreen />;
  } else if (statusMode === 'Main' {
    return <MainForm />;
  }
}

render() {
  const { statusMode } = this.state.FormStatus;

  return (
    <div>
      <span>Something you want to display no matter what</span>
      {statusMode === 'Loading' && <Loading />}
      {statusMode === 'Main' && <Main />}
    </div>
  );
}
 类似资料:
  • 我正在寻找一个最佳实践,有一个ReactJS组件负责用户编辑给定实体的表单。非常简单的例子。在许多情况下,实际的表单会有更多的字段和更多的GUI功能。 表单的字段直接编辑实体对象,然后将其保存到RESTful API中。我希望组件被更新,因为用户改变字段,所以GUI可以根据输入在键入(如验证,信息等)。 null 在上面的简化示例中,我使用受控输入。这导致在每次更改时更新状态并重新呈现组件(就像文

  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En

  • VR设计 VR设计不同于平面体验设计。作为一种新的媒介,有新的最佳实践需要遵循,特别是保持用户的舒适性和存在性。这在如下指南中已经写得很透彻了: Oculus VR最佳实践 Leap Motion VR最佳实践指南 一些值得注意的事情: 公共的金科玉律是永远不要意外地把相机控制权从用户手中剥夺。 单位(比如对于位置)应该考虑使用米(m)。这是因为WebVR API以米为单位返回姿势数据,进而传送给

  • 本章文档将阐述一些使用herosphp开发一些常用模块的一些比较好的实践。 未完待续。。。

  • 适当的使用vuex 能不用就不用。 能用就用。 不要为了使用而使用,一个小方法里面有5个设计模式。 不要过度使用CSS框架 因为CSS框架一般会大幅度增加文件体积。 例如 bootstrap, ele.me前端框架。 这个在低端安卓机上影响显著。 使用CDN来存放js, css, 和图片文件。 灵活使用第三方Vue 插件 例如: 轮播图, 表单验证等等。这些轮子都是现成的。 前端逻辑务必简单 能在

  • 这是 Martin Zinkevich (Google) 在 NIPS 2016 Workshop 分享的谷歌机器学习最佳实践翻译版,PDF 全文见 Rules of Machine Learning: Best Practices for ML Engineering。 机器学习产品所要面对的难题是工程问题(而不是 ML 算法),所以在做机器学习时要遵循跟其他产品类似的工程原则。 术语 实例(

  • Create Helper Builders and Checkers It’s pretty simple to extract certain checks (if a node is a certain type) into their own helper functions as well as extracting out helpers for specific node types