React 入门:JSX语法详解

简介

React是一个用于构建用户界面的JavaScript库,它引入了JSX语法,使得你可以在JavaScript代码中编写类似HTML的结构。JSX在编译后会被转换成合法的JavaScript对象。

JSX基础

JSX是一种看起来像HTML的JavaScript语法扩展。它并不直接被浏览器执行,而是通过Babel这样的编译器转换成JavaScript。

基本语法

jsx 复制代码
const element = <h1>Hello, world!</h1>;

在React中,你可以像这样创建一个React元素。

表达式

JSX支持在花括号{}中嵌入任何有效的JavaScript表达式。

jsx 复制代码
const name = 'Kimi';
const element = <h1>Hello, {name}!</h1>;

组件

在JSX中,你可以使用小写标签来表示HTML元素,而使用大写标签来表示React组件。

jsx 复制代码
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

const element = <Welcome name="Kimi" />;

JSX与HTML的区别

  1. 类名 vs className :在JSX中,class需要替换为className。

    jsx 复制代码
    const element = <div className="my-div">Hello, world!</div>;
  2. 事件处理:JSX中的事件处理使用驼峰命名法。

    jsx 复制代码
    function handleClick() {
      console.log('Clicked!');
    }
    
    const element = <button onClick={handleClick}>Click me</button>;
  3. 布尔属性 :布尔属性如果在JSX中为true,则不需要提供属性值。

    jsx 复制代码
    const element = <input type="checkbox" checked />;

条件渲染

JSX中的条件渲染与JavaScript中的条件语句相同。

jsx 复制代码
const element = (
  <div>
    {condition ? <ChildComponent /> : <AnotherComponent />}
  </div>
);

列表渲染

使用JavaScript的map()函数来渲染列表。

jsx 复制代码
const items = ['item1', 'item2', 'item3'];
const element = (
  <ul>
    {items.map(item => (
      <li key={item}>{item}</li>
    ))}
  </ul>
);

样式

在JSX中,你可以使用行内样式,或者通过className来引用CSS类。

jsx 复制代码
const element = (
  <div style={{ color: 'red', fontSize: 20 }}>
    Hello, world!
  </div>
);

函数作为子元素

你可以将函数作为子元素传递给组件,这在处理事件时非常有用。

jsx 复制代码
const element = <ParentComponent onClick={handleClick} />;

结论

通过这篇教程,你应该对React的JSX语法有了基本的了解。JSX使得React的应用开发更加直观和声明式,是学习React不可或缺的一部分。

相关推荐
jktantan8 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
前端·javascript·vue.js
总要学点什么8 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
前端精髓9 小时前
调用openrouter的免费API模型
java·前端·javascript
螺丝钉tina15 小时前
[Playwright] [02]常用命令与调试:Debug UI、Mode和 Trace Viewer
开发语言·javascript·测试工具·ui·自动化
开开心心就好16 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
এ慕ོ冬℘゜17 小时前
JS 事件循环、宏任务微任务:单线程底层原理 + 执行顺序
开发语言·javascript·ecmascript
web打印社区17 小时前
Lodop排障总纲-常见报错一张表
开发语言·前端·javascript·chrome·websocket
程序员大阳17 小时前
副队长JavaScript教程(56)-DOM之表单操作
javascript·dom·表单操作
Dxy123931021618 小时前
JS AES加密详解
开发语言·javascript·ecmascript
FRing0318 小时前
JavaScript入门到精通三十三(异常处理、call方法、apply方法、bind方法、防抖、节流)
开发语言·前端·javascript