React是由Facebook开发的JavaScript库,用于构建用户界面,特别是单页应用程序。它允许开发者创建大型的Web应用,在不重新加载页面的情况下可以改变数据。本文将介绍React的核心概念、JSX语法、组件化思想以及状态与属性的基本用法。
React的核心理念
React的核心理念可以概括为以下几点:
- 组件化:UI被拆分成独立、可复用的组件
- 声明式编程:你只需描述UI应该是什么样子,React会负责渲染
- 单向数据流:数据从父组件流向子组件,使应用状态更可预测
- 虚拟DOM:提高性能的关键技术,减少实际DOM操作
搭建React开发环境
使用Create React App是开始React项目的最简单方式:
# 安装Create React App
npx create-react-app my-app
# 进入项目目录
cd my-app
# 启动开发服务器
npm start
JSX语法
JSX是JavaScript的语法扩展,看起来像HTML,但实际上是JavaScript。它允许我们在JavaScript中编写HTML结构。
JSX基础语法
// 基本JSX元素
const element = <h1>Hello, world!</h1>;
// 在JSX中使用JavaScript表达式
const name = 'John';
const greeting = <h1>Hello, {name}!</h1>;
// JSX中的属性
const link = <a href="https://reactjs.org">React官网</a>;
// JSX中的样式
const style = { color: 'red', fontSize: '20px' };
const styledElement = <p style={style}>这是红色文字</p>;
// JSX中的类名
const classElement = <div className="container">内容</div>;
JSX注意事项
- JSX必须有一个根元素或使用Fragment
- 所有标签必须闭合
- 使用
className
而不是class
- 使用
htmlFor
而不是for
- 事件处理器使用驼峰命名法
React组件
React组件是构建UI的基本 单位,可以将其视为自定义的HTML元素。
函数组件
函数组件是最简单的组件形式,它是一个返回React元素的JavaScript函数:
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
// 使用箭头函数
const Welcome = (props) => {
return <h1>Hello, {props.name}</h1>;
};
// 使用组件
const element = <Welcome name="Sara" />;
类组件
类组件是使用ES6类语法定义的组件:
import React, { Component } from 'react';
class Welcome extends Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
// 使用组件
const element = <Welcome name="Sara" />;