当前位置: 首页 > article >正文

【React】JSX基础知识

1. JSX的本质

  1. JSX并不是标准的js语法,而是js语法扩展,浏览器本身无法识别,需要进行解析。解析工具:babel
    在这里插入图片描述

2. JSX使用的4个高频场景

  1. 使用引号传递字符串
  2. 使用js变量
  3. 函数调用和方法调用
  4. 使用js对象
function App() {
  const jsVar = 1314
  function Func() {
    return '这是一个函数'
  }
  return (
    <div className="App">
      this is App
      <br/>
      {'使用引号传递字符串'}
      <br/>
      {jsVar}
      <br/>
      {Func()}
      <br/>
      {new Date().getTime()}
      <br/>
      <div style={{color: 'pink'}}>我变粉色啦</div>
    </div>
  );
}

export default App;

在这里插入图片描述

3. JSX实现列表渲染

**语法:**使用原生js中的map方法遍历渲染列表

function App() {
  const list = [
    { id: '001', content: '刘能' },
    { id: '002', content: '赵四' },
    { id: '003', content: '谢广坤' },
  ]
  return (
    <div className="App">
      乡村爱情中最搞笑的3个男人:
      <ul>
        {list.map((item) => {
          // 注意:需要加上一个唯一的key
          return <li key={item.id}>{item.content}</li>
        })}
      </ul>
    </div>
  );
}

export default App;

在这里插入图片描述

4. JSX的条件渲染

4.1 简单的

语法:可以使用逻辑与运算符&&、三元表达式?:实现

function App() {
  const isLoading = true
  const isLogin = false
  return (
    <div className="App">
      {isLoading && <div>加载中</div>}
      {isLogin ? <span>已登录</span> : <span>未登录</span> }
    </div>
  );
}

export default App;

在这里插入图片描述

4.2 复杂的

需求:根据文章状态(单图,三图和无图)适配3种情况
解决:自定义函数 + if语句

function App() {
  const articleType = 0
  function getArticleTem() {
    if (articleType === 0) {
      return <div>无图模式</div>
    } else if (articleType === 1) {
      return <div>单图模式</div>
    } else {
      <div>多图模式</div>
    }
  }
  return (
    <div className="App">
      {getArticleTem()}
    </div>
  );
}

export default App;

在这里插入图片描述

参考

黑马程序员react教程


http://www.kler.cn/a/322519.html

相关文章:

  • JWT 过期后 自动刷新方案
  • 找不到vcruntime140.dll怎么办,彻底解决vcruntime140.dll丢失的5种方法
  • 基于Python实现的HDR图像处理算法
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View
  • 前端处理input框只能输入带小数点的数字
  • ISCTF 2024 web
  • 鸿蒙-app进入最近任务列表触发的监听
  • 均匀合并列表
  • 前端面试题(七)
  • 力扣题解2306
  • 探秘电商平台数据采集:API 接口接入实战演示
  • DERT目标检测—End-to-End Object Detection with Transformers
  • pip配置阿里云、清华和中科大的镜像
  • vue2实现提取字符串数字并修改数字样式(正则表达式)
  • Diameter协议
  • 【HarmonyOS】横向List高度适配
  • 什么是数据库视图(View)?视图和表有何区别?
  • 从0到1,数字媒体产业基地见证每一个创意的诞生与成长
  • Oracle 数据库安装和配置指南
  • 西电雨课堂刷课工具
  • Matlab/simulink低版本打开高版本
  • 2024/9/27 The Limitations of Deep Learning in Adversarial Settings读后感
  • 如何查看服务器是否有raid阵列卡以及raid类型
  • CVE-2024-1112 Resource Hacker 缓冲区溢出分析
  • 防火墙详解(二)通过网页登录配置华为eNSP中USG6000V1防火墙
  • 基于springBoot校园健康驿站管理平台(源码+教程)