美文网首页
jsx 中的条件处理

jsx 中的条件处理

作者: 1歩 | 来源:发表于2017-09-24 23:02 被阅读0次

jsx的{}只能是表达式,为了增强代码可读性,下面介绍如何处理jsx 中的条件判断。

Conditionals in JSX

使用短路与&&代替三元运算符实现元素的条件显示

实际业务中,只有满足条件时,有些元素才会显示。例如页面loading。
推荐使用短路与实现:

//Instead of  `? :`
const Loading = (isloading) => {
  return isloading && <div>Loading~</div>;
};

使用子组件或 IIFE(立即执行函数)实现复杂的条件判断

业务场景较为复杂时,需在jsx 中进行多层的条件判断。jsx 的{}中只能是表达式,若使用多个三元运算符会降低代码的可读性。推荐拆分子组件或采用IIFE的形式。

复杂场景举例:

// Y soo many ternary??? :-/
const sampleComponent = () => {
  return (
    <div>
      {flag && flag2 && !flag3
        ? flag4
        ? <p>Blah</p>
        : flag5
        ? <p>Meh</p>
        : <p>Herp</p>
        : <p>Derp</p>
      }
    </div>
  )
};
  1. 拆分子组件:
const SubComponent = (flag, flag2, flag3, flag4, flag5) => {
    if (flag && flag2 && !flag3) {
        if (flag4) {
            return <p>Blah</p>
        } else if (flag5) {
            return <p>Meh</p>
        } else {
            return <p>Herp</p>
        }
    } else {
        return <p>Derp</p>
    }
}
const sampleComponent = () => {
    return <div>
        <SubComponent {...conditions} />
    </div>;
}
  1. IIFE:
const sampleComponent = () => {
  return (
    <div>
      {
        (() => {
          if (flag && flag2 && !flag3) {
            if (flag4) {
              return <p>Blah</p>
            } else if (flag5) {
              return <p>Meh</p>
            } else {
              return <p>Herp</p>
            }
          } else {
            return <p>Derp</p>
          }
        })()
      }
    </div>
  )
};

持续更新,更多细节请 关注xixi小站

相关文章

  • jsx 中的条件处理

    jsx的{}只能是表达式,为了增强代码可读性,下面介绍如何处理jsx 中的条件判断。 Conditionals i...

  • dva dispatch

    jsx中事件处理中有dispatch model:

  • JSX 中内联条件渲染的方法

    在 React 中,可以创建不同的组件来封装各种你需要的行为。然后,依据应用的不同状态,只渲染对应状态下的部分内容...

  • JSX的条件选择

    if 条件句 逻辑运算符 && || &&: 如果左边是true,则取右边的值,如果左边是false,则取左边的值...

  • ps脚本jsx快速处理图片

    ps快速处理: 动作窗口录制 菜单--批处理交互,配合动作窗口 菜单--浏览jsx jsx的使用方法。 已下载的都...

  • React文档学习2

    条件渲染 使用运算符if和条件运算符去创建元素来表现当前的状态。 几种在JSX中内联条件渲染的方法 &&与运算符 ...

  • jsx(4)-条件渲染

    条件渲染 还有一个可选链。

  • JSX

    参考文章: JSX 简介 重拾JSX JSX,了解一下? 在react中想将js当作变量引入到jsx中需要使用{}...

  • 一起学React--元素渲染和生命周期

    1. JSX JSX是Javascript的语法拓展,在React中通过JSX渲染元素 类似模版渲染,jsx可以通...

  • React笔记(核心概念部分)

    核心概念 1. JSX JSX是javascript的语法扩展,让我们可以在JS中编写常规html代码,在JSX中...

网友评论

      本文标题:jsx 中的条件处理

      本文链接:https://www.haomeiwen.com/subject/ukglextx.html