当前位置:首页 > React

react框架如何使用

2026-02-12 07:46:04React

安装 React

使用 Create React App 快速搭建项目:

npx create-react-app my-app
cd my-app
npm start

组件基础

函数组件示例:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

类组件示例:

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

状态管理

函数组件使用 Hook:

import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

类组件状态管理:

class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }

  render() {
    return (
      <div>
        <p>You clicked {this.state.count} times</p>
        <button onClick={() => this.setState({ count: this.state.count + 1 })}>
          Click me
        </button>
      </div>
    );
  }
}

生命周期

类组件生命周期方法:

class Clock extends React.Component {
  componentDidMount() {
    this.timerID = setInterval(
      () => this.tick(),
      1000
    );
  }

  componentWillUnmount() {
    clearInterval(this.timerID);
  }

  tick() {
    this.setState({
      time: new Date().toLocaleTimeString()
    });
  }

  render() {
    return (
      <div>
        <h1>Current Time:</h1>
        <h2>{this.state.time}</h2>
      </div>
    );
  }
}

函数组件使用 useEffect:

import { useState, useEffect } from 'react';

function Clock() {
  const [time, setTime] = useState(new Date().toLocaleTimeString());

  useEffect(() => {
    const timerID = setInterval(() => {
      setTime(new Date().toLocaleTimeString());
    }, 1000);

    return () => clearInterval(timerID);
  }, []);

  return (
    <div>
      <h1>Current Time:</h1>
      <h2>{time}</h2>
    </div>
  );
}

事件处理

事件绑定示例:

function ActionLink() {
  function handleClick(e) {
    e.preventDefault();
    console.log('The link was clicked.');
  }

  return (
    <a href="#" onClick={handleClick}>
      Click me
    </a>
  );
}

列表渲染

使用 map() 渲染列表:

function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    <li key={number.toString()}>
      {number}
    </li>
  );

  return <ul>{listItems}</ul>;
}

表单处理

受控组件示例:

function NameForm() {
  const [value, setValue] = useState('');

  function handleChange(event) {
    setValue(event.target.value);
  }

  function handleSubmit(event) {
    alert('A name was submitted: ' + value);
    event.preventDefault();
  }

  return (
    <form onSubmit={handleSubmit}>
      <label>
        Name:
        <input type="text" value={value} onChange={handleChange} />
      </label>
      <input type="submit" value="Submit" />
    </form>
  );
}

组件通信

父传子:

function Parent() {
  const message = "Hello from parent";
  return <Child message={message} />;
}

function Child(props) {
  return <h1>{props.message}</h1>;
}

子传父:

function Parent() {
  function handleChildClick(data) {
    console.log("Data from child:", data);
  }

  return <Child onClick={handleChildClick} />;
}

function Child(props) {
  function handleClick() {
    props.onClick("Data from child");
  }

  return <button onClick={handleClick}>Click me</button>;
}

使用 Context

创建和使用 Context:

react框架如何使用

const ThemeContext = React.createContext('light');

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

function Toolbar() {
  return (
    <div>
      <ThemedButton />
    </div>
  );
}

function ThemedButton() {
  const theme = useContext(ThemeContext);
  return <button theme={theme}>I am styled by theme!</button>;
}

分享给朋友:

相关文章

如何使用java

如何使用java

安装Java开发环境 下载并安装Java Development Kit(JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

vue框架组织树实现

vue框架组织树实现

Vue框架中组织树的实现方法 使用递归组件实现树形结构 在Vue中可以通过递归组件来实现树形结构。创建一个树节点组件,该组件能够自我引用,从而递归渲染子节点。 <template>…

vue评论框架的实现

vue评论框架的实现

实现Vue评论框架的基本结构 评论框架通常包含评论列表、发表评论表单和回复功能。使用Vue可以轻松构建响应式评论组件。 <template> <div class="comme…

vue框架实现的功能

vue框架实现的功能

Vue.js 是一个渐进式前端框架,专注于构建用户界面和单页应用(SPA)。以下是其核心功能的分类说明: 数据绑定与响应式系统 Vue 通过双向数据绑定实现视图与数据的自动同步。采用 Object.…

vue框架能实现什么

vue框架能实现什么

Vue框架的核心功能 Vue.js是一个渐进式JavaScript框架,专注于构建用户界面和单页应用(SPA)。其核心功能包括: 数据驱动视图:通过响应式数据绑定自动更新DOM,无需手动操作。…

react filter如何使用

react filter如何使用

react filter 的基本用法 在 React 中,filter 通常用于筛选数组数据,常见于列表渲染或数据处理场景。filter 是 JavaScript 数组的原生方法,但在 React 中…