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

【React】JSX基础

一、简介

JSX是JavaScript XML的缩写,它是一种在JavaScript代码中编写类似HTML模板的结构的方法。JSX是React框架中构建用户界面(UI)的核心方式之一。

1.什么是JSX

JSX允许开发者使用类似HTML的声明式模板来构建组件。它结合了HTML的直观性和JavaScript的编程能力,使得开发者能够更高效地构建动态用户界面。

const message = 'this is message';function App() {return (<div><h1>this is title</h1>{message}</div>);
}

二、JSX高频场景

1.JS表达式

在JSX中,可以使用大括号{}来嵌入JavaScript表达式,包括变量、函数调用、方法调用等。

  • 使用引号传递字符串。
  • 使用JavaScript变量。
  • 函数调用和方法调用。
  • 使用JavaScript对象。

需要注意的是,某些JavaScript语句,如ifswitch、变量声明等,不属于表达式,不能直接在JSX中使用。

const message = 'this is message';
function getAge() { return 18; }function App() {return (<div><h1>this is title</h1>{'this is str'}{message}{getAge()}</div>);
}

2.列表渲染

在JSX中,可以使用JavaScript的map方法来实现列表的渲染。

const list = [{ id: 1001, name: 'Vue' },{ id: 1002, name: 'React' },{ id: 1003, name: 'Angular' }
];function App() {return (<div><ul>{list.map(item => <li key={item.id}>{item.name}</li>)}</ul></div>);
}

3.条件渲染

在React中,可以使用逻辑与运算符&&或三元表达式?:来实现条件渲染。

const flag = true;
const loading = false;function App() {return (<>{flag && <span>this is span</span>}{loading ? <span>loading...</span> : <span>this is span</span>}</>);
}

4.复杂条件渲染

对于更复杂的条件渲染,可以结合自定义函数和判断语句来实现。

const type = 1; // 0, 1, or 3function getArticleJSX() {if (type === 0) {return <div>无图模式模版</div>;} else if (type === 1) {return <div>单图模式模版</div>;} else if (type === 3) {return <div>三图模式模版</div>;}
}function App() {return (<>{getArticleJSX()}</>);
}

5.结语

JSX是React开发中不可或缺的一部分,它提供了一种强大而灵活的方式来构建用户界面。通过掌握JSX的基础知识和高频使用场景,开发者可以更高效地构建动态且响应式的Web应用。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Debezium日常分享系列之:Debezium2.7版本PostgreSQL数据库连接器
  • 艺术成分很高的完全自定义的UITabBar(很简单)
  • org.springframework.context.ApplicationContext发送消息
  • filebeat把日志文件上传到Es中配置(ES7版本)
  • 喜讯丨泰迪智能科技实力中标湖北民族大学数学与统计学院一流专业实验室建设项目
  • js | Core
  • 代码随想录学习 day54 图论 Bellman_ford 算法精讲
  • Oracle线上执行SQL特别慢的原因分析
  • Spring Boot(八十一):Sa-Token快速实现API接口签名安全校验
  • 《JavaSE》---21.<简单认识Java的集合框架包装类泛型>
  • matlab simulink气隙局部放电仿真技术研究
  • 靖江美食元宇宙
  • openlayers 3d 地图 非三维 立体地图 行政区划裁剪 地图背景
  • 基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-支持VForm3表单的选择与支持
  • 安装好anaconda,打开jupyter notebook,新建 报500错
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【前端学习】-粗谈选择器
  • HTTP请求重发
  • java概述
  • JAVA之继承和多态
  • js中的正则表达式入门
  • leetcode讲解--894. All Possible Full Binary Trees
  • Mocha测试初探
  • October CMS - 快速入门 9 Images And Galleries
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python爬虫--- 1.3 BS4库的解析器
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Web设计流程优化:网页效果图设计新思路
  • 给github项目添加CI badge
  • 关于Java中分层中遇到的一些问题
  • 回顾2016
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 用 Swift 编写面向协议的视图
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • raise 与 raise ... from 的区别
  • 选择阿里云数据库HBase版十大理由
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #window11设置系统变量#
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (20050108)又读《平凡的世界》
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (二)c52学习之旅-简单了解单片机
  • (附源码)计算机毕业设计高校学生选课系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (四)React组件、useState、组件样式
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (转)ObjectiveC 深浅拷贝学习
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .DFS.
  • .NET MVC第五章、模型绑定获取表单数据
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.