百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

React 1、JSX使用教程

liuian 2025-03-07 20:52 8 浏览


1.JSX 是什么?

JSX(JavaScript XML)是 JavaScript 的语法扩展,用于在 React 中描述 UI 结构。它结合了 JavaScript 的表达式和 HTML 的标签语法。

优点:

  • 直观:类似于 HTML,易于理解和书写。
  • 强大:可以直接嵌入 JavaScript 表达式。
  • 高效:与 React 深度集成,优化了渲染性能。

2.基本语法

2.1 JSX 表达式的使用

JSX 可以嵌入 JavaScript 表达式,用 {} 包裹。

const name = "前端开发者";
const element = 

你好, {name}!

; // 使用变量 ReactDOM.render(element, document.getElementById('root'));

2.2 JSX 中的标签

JSX 中的标签可以是 HTML 标签,也可以是自定义组件。

function Welcome() {
  return 

欢迎来到 JSX 世界!

; } const element = ; // 自定义组件 ReactDOM.render(element, document.getElementById('root'));

2.3 JSX 中的属性

JSX 中的属性可以使用字符串或表达式。

const url = "https://www.example.com";
const element = 点击这里; // 使用表达式

ReactDOM.render(element, document.getElementById('root'));

2.4 JSX 中的样式

JSX 中的样式使用对象形式,属性名使用驼峰命名。

const style = {
  color: 'red',
  fontSize: '20px', // 驼峰命名
};

const element = 

红色文字,20px 大小

; ReactDOM.render(element, document.getElementById('root'));

2.5 JSX 中的注释

JSX 中的注释需要用 {/* */} 包裹。

const element = (
  
{/* 这是一个注释 */}

你好,JSX!

); ReactDOM.render(element, document.getElementById('root'));

3.JSX 高级用法

3.1 条件渲染

JSX 中可以使用三元运算符或 && 进行条件渲染。

const isLoggedIn = true;
const element = (
  
{isLoggedIn ?

欢迎回来!

:

请登录

} {/* 三元运算符 */} {isLoggedIn && } {/* 逻辑与 */}
); ReactDOM.render(element, document.getElementById('root'));

3.2 列表渲染

使用 map 函数渲染列表,每个元素需要一个唯一的 key。

const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) => (
  
  • {number}
  • // 使用 key )); const element =
      {listItems}
    ; ReactDOM.render(element, document.getElementById('root'));

    3.3 嵌套 JSX

    JSX 可以嵌套其他 JSX。

    const element = (
      

    标题

    这是一个段落。

    • 列表项 1
    • 列表项 2
    ); ReactDOM.render(element, document.getElementById('root'));

    3.4 事件绑定

    JSX 中的事件绑定使用 on 开头的属性,如 onClick。

    function handleClick() {
      alert('按钮被点击了!');
    }
    
    const element = ; // 事件绑定
    
    ReactDOM.render(element, document.getElementById('root'));
    

    3.5 片段(Fragment)

    使用 或 <> 包裹多个元素,避免额外的 DOM 节点。

    const element = (
      
        

    标题

    这是一个段落。

    ); // 或者使用简写 const element = ( <>

    标题

    这是一个段落。

    ); ReactDOM.render(element, document.getElementById('root'));

    4.代码示例合集

    以下是 JSX 的完整示例,结合了上述特性:

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    // 数据
    const user = {
      name: '前端开发者',
      age: 25,
      hobbies: ['编程', '听音乐', '跑步'],
    };
    
    // 事件处理函数
    function handleClick() {
      alert('你好,' + user.name + '!');
    }
    
    // JSX 结构
    const element = (
      

    欢迎来到 JSX 世界!

    用户名: {user.name}

    年龄: {user.age}

    兴趣爱好:

      {user.hobbies.map((hobby, index) => (
    • {hobby}
    • // 列表渲染 ))}
    {/* 条件渲染 */} {user.age >= 18 &&

    你是一个成年人。

    } {/* 片段 */} <>

    这是一个片段示例。

    ); // 渲染到 DOM ReactDOM.render(element, document.getElementById('root'));

    5.JSX 与 HTML 的区别

    1. 标签属性名:JSX 使用驼峰命名,如 className(HTML:class)。
    2. 自闭合标签:JSX 必须正确闭合,如 。
    3. 嵌入表达式:JSX 使用 {} 包裹 JavaScript 表达式。
    4. 注释语法:JSX 使用 {/* */}。

    6.总结

    特性

    示例

    描述

    表达式

    {name}

    嵌入 JavaScript 表达式

    条件渲染

    isLoggedIn &&

    欢迎

    根据条件渲染内容

    列表渲染

    map((item) =>

  • {item}
  • )

    渲染列表,使用 key

    事件绑定

    onClick={handleClick}

    绑定事件处理函数

    片段

    或 <>

    包裹多个元素,避免额外 DOM 节点

    相关推荐

    【常识】如何优化Windows 7

    优化Windows7可以让这个经典系统运行更流畅,特别是在老旧硬件上。以下是经过整理的实用优化方案,分为基础优化和进阶优化两部分:一、基础优化(适合所有用户)1.关闭不必要的视觉效果右键计算机...

    系统优化!Windows 11/10 必做的十个优化配置

    以下是为Windows10/11用户整理的10个必做优化配置,涵盖性能提升、隐私保护和系统精简等方面,操作安全且无需第三方工具:1.禁用不必要的开机启动项操作路径:`Ctrl+S...

    最好用音频剪辑的软件,使用方法?

    QVE音频剪辑是一款简单实用的软件,功能丰富,可编辑全格式音频。支持音频转换、合并、淡入淡出、变速、音量调节等,无时长限制,用户可自由剪辑。剪辑后文件音质无损,支持多格式转换,便于存储与跨设备播放,满...

    Vue2 开发总踩坑?这 8 个实战技巧让代码秒变丝滑

    前端开发的小伙伴们,在和Vue2打交道的日子里,是不是总被各种奇奇怪怪的问题搞得头大?数据不响应、组件传值混乱、页面加载慢……别慌!今天带来8个超实用的Vue2实战技巧,每一个都能直击痛...

    Motion for Vue:为Vue量身定制的强大动画库

    在前端开发中,动画效果是提升用户体验的重要手段。Vue生态系统中虽然有许多动画库,但真正能做到高性能、易用且功能丰富的并不多。今天,我们要介绍的是MotionforVue(motion-v),...

    CSS view():JavaScript 滚动动画的终结

    前言CSSview()方法可能会标志着JavaScript在制作滚动动画方面的衰落。如何用5行CSS代码取代50多行繁琐的JavaScript,彻底改变网页动画每次和UI/U...

    「大数据」 hive入门

    前言最近会介入数据中台项目,所以会推出一系列的跟大数据相关的组件博客与文档。Hive这个大数据组件自从Hadoop诞生之日起,便作为Hadoop生态体系(HDFS、MR/YARN、HIVE、HBASE...

    青铜时代的终结:对奖牌架构的反思

    作者|AdamBellemare译者|王强策划|Tina要点运维和分析用例无法可靠地访问相关、完整和可信赖的数据。需要一种新的数据处理方法。虽然多跳架构已经存在了几十年,并且可以对...

    解析IBM SQL-on-Hadoop的优化思路

    对于BigSQL的优化,您需要注意以下六个方面:1.平衡的物理设计在进行集群的物理设计需要考虑数据节点的配置要一致,避免某个数据节点性能短板而影响整体性能。而对于管理节点,它虽然不保存业务数据,但作...

    交易型数据湖 - Apache Iceberg、Apache Hudi和Delta Lake的比较

    图片由作者提供简介构建数据湖最重要的决定之一是选择数据的存储格式,因为它可以大大影响系统的性能、可用性和兼容性。通过仔细考虑数据存储的格式,我们可以增强数据湖的功能和性能。有几种不同的选择,每一种都有...

    深入解析全新 AWS S3 Tables:重塑数据湖仓架构

    在AWSre:Invent2024大会中,AWS发布了AmazonS3Tables:一项专为可扩展存储和管理结构化数据而设计的解决方案,基于ApacheIceberg开放表格...

    Apache DataFusion查询引擎简介

    简介DataFusion是一个查询引擎,其本身不具备存储数据的能力。正因为不依赖底层存储的格式,使其成为了一个灵活可扩展的查询引擎。它原生支持了查询CSV,Parquet,Avro,Json等存储格式...

    大数据Hadoop之——Flink Table API 和 SQL(单机Kafka)

    一、TableAPI和FlinkSQL是什么TableAPI和SQL集成在同一套API中。这套API的核心概念是Table,用作查询的输入和输出,这套API都是批处理和...

    比较前 3 名Schema管理工具

    关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。在本文中,读者将了解三种顶级schema管理工具,如AWSGlue、ConfluentSchemaRegistry和Memph...

    大数据技术之Flume

    第1章概述1.1Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。1.2Flume的优点1.可以和...