JSX 入门:React 开发者的必备技能指南

2024-04-08 05:12

本文主要是介绍JSX 入门:React 开发者的必备技能指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JSX 是 React 的一种语法扩展,用于描述 UI 组件的外观。在 React 中,JSX 可以与 JavaScript 一起使用,帮助您在应用程序中创建动态和可重用的组件。以下是 JSX 的语法、使用技巧和注意事项,以及一些示例代码。

  1. JSX 基础语法

JSX 允许在 JavaScript 代码中编写类似于 HTML 的代码。在 JSX 中,您可以创建标签、属性和子元素,以构建组件的结构。以下是一个简单的 JSX 示例:

const greeting = <h1>Hello, World!</h1>;
  1. JSX 表达式

JSX 允许在大括号 {} 内嵌入 JavaScript 表达式。这使您可以动态生成元素并在其中使用变量和函数。

const name = 'John';
const greeting = <h1>Hello, {name}!</h1>;
  1. 条件渲染

在 JSX 中,可以使用 JavaScript 运算符(如三元运算符或逻辑与运算符)根据条件渲染元素。

const isLoggedIn = true;
const message = (<div>{isLoggedIn ? <p>Welcome back!</p> : <p>Please log in.</p>}</div>
);
  1. 列表和键

在 JSX 中渲染列表时,需要为每个元素分配一个唯一的 key 属性,以帮助 React 识别哪些元素已更改、添加或删除。

const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) =><li key={number.toString()}>{number}</li>
);
  1. 事件处理

在 JSX 中,可以使用 JavaScript 函数来处理用户交互事件。为了在事件处理程序中引用函数,需要使用驼峰式命名法(例如 onClick 而不是 onclick)。

function handleClick() {console.log('Button clicked!');
}const button = <button onClick={handleClick}>Click me</button>;
  1. 组件

组件是 React 中的核心概念。在 JSX 中,可以将组件视为自定义标签,并在其他组件中嵌套使用这些标签。

function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}const element = <Welcome name="John" />;
  1. 注意事项
  • JSX 标签必须闭合。
  • JSX 标签名称必须以大写字母开头,以区分内置的 HTML 标签和自定义组件。
  • 在 JSX 中,需要使用 className 代替 class 属性,以避免与 JavaScript 的保留字冲突。
  • 在 JSX 中,需要使用 htmlFor 代替 for 属性,以避免与 JavaScript 的保留字冲突。
  1. 多个元素

在 JSX 中,组件只能返回一个根元素。如果需要返回多个元素,可以将其包装在一个父元素中,例如 <div><React.Fragment>

function App() {return (<div><h1>Hello, World!</h1><p>Welcome to React.</p></div>);
}// 或者使用 React.Fragment
function App() {return (<React.Fragment><h1>Hello, World!</h1><p>Welcome to React.</p></React.Fragment>);
}// 或者使用简写语法
function App() {return (<><h1>Hello, World!</h1><p>Welcome to React.</p></>);
}
  1. 内联样式

在 JSX 中,可以使用内联样式来设置元素的样式。需要将样式属性设置为一个 JavaScript 对象,其中键为驼峰式的 CSS 属性名称,值为字符串值。

const divStyle = {color: 'white',backgroundColor: 'black',padding: '10px',fontSize: '24px'
};const styledDiv = <div style={divStyle}>Styled Div</div>;
  1. 展开运算符

在 JSX 中,可以使用展开运算符(...)将一个对象的属性传递给组件。

const props = {name: 'John',age: 30
};function User(props) {return (<div><p>Name: {props.name}</p><p>Age: {props.age}</p></div>);
}const user = <User {...props} />;
  1. 默认属性

在 React 中,可以为组件的属性设置默认值。这在组件接收到未定义的属性时非常有用。

function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}Welcome.defaultProps = {name: 'Guest'
};const element = <Welcome />; // 渲染 "Hello, Guest"
  1. 属性类型检查

使用 PropTypes 库可以为组件的属性进行类型检查,以确保正确地使用组件。

import PropTypes from 'prop-types';function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}Welcome.propTypes = {name: PropTypes.string.isRequired
};
  1. HTML 属性命名

在 JSX 中,需要使用驼峰式命名法来命名属性。这意味着所有属性名称都应该以小写字母开头,后跟一个或多个大写字母,例如 onClicktabIndexariaLabel

const button = (<button onClick={handleClick} tabIndex="0" aria-label="Click me">Click me</button>
);

请注意,当在 JSX 中使用 HTML 属性时,需要使用驼峰式命名法,即使 HTML 属性本身是小写的。例如,使用 className 代替 class,使用 htmlFor 代替 for

  1. 自定义属性

在 JSX 中,您可以为组件添加自定义属性,以传递额外的信息。自定义属性应以 data-*aria-* 为前缀,以避免与内置属性冲突。

function MyComponent(props) {return (<div data-my-prop={props.myProp}>{props.children}</div>);
}const element = (<MyComponent myProp="custom-value"><h1>Hello, World!</h1></MyComponent>
);

总之,掌握 JSX 的语法和使用技巧对于 React 开发至关重要。通过学习这些概念并实践示例代码,您可以更好地利用 JSX 来创建动态和可重用的组件,并提高应用程序的整体性能和可维护性。

这篇关于JSX 入门:React 开发者的必备技能指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884651

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的