当前位置:首页 > React

react如何实现组件

2026-02-11 17:09:34React

React 组件实现方法

React 组件是构建用户界面的核心单元,分为函数组件和类组件两种形式。以下是具体实现方式:

函数组件实现

函数组件是推荐使用的现代写法,通过纯函数定义:

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

箭头函数写法更简洁:

const Greeting = (props) => <h1>Hello, {props.name}</h1>;

带状态的函数组件需使用 Hooks:

import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(count + 1)}>
      Clicked {count} times
    </button>
  );
}

类组件实现

传统类组件写法需要继承 React.Component:

react如何实现组件

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

带状态的类组件:

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

  handleClick = () => {
    this.setState({ count: this.state.count + 1 });
  };

  render() {
    return (
      <button onClick={this.handleClick}>
        Clicked {this.state.count} times
      </button>
    );
  }
}

组件组合方式

组件可以嵌套组合使用:

function App() {
  return (
    <div>
      <Greeting name="Alice" />
      <Counter />
    </div>
  );
}

组件间通信

父组件通过 props 向子组件传递数据:

react如何实现组件

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

function Child({ message }) {
  return <p>{message}</p>;
}

子组件通过回调函数与父组件通信:

function Parent() {
  const handleChildClick = (msg) => {
    console.log(msg);
  };
  return <Child onClick={handleChildClick} />;
}

function Child({ onClick }) {
  return <button onClick={() => onClick('Child clicked')}>Click</button>;
}

生命周期管理

函数组件使用 useEffect 处理生命周期:

import { useEffect } from 'react';

function Timer() {
  useEffect(() => {
    const timer = setInterval(() => console.log('tick'), 1000);
    return () => clearInterval(timer); // 清理函数
  }, []);
  return <div>Timer is running</div>;
}

类组件使用原生生命周期方法:

class Timer extends React.Component {
  componentDidMount() {
    this.timer = setInterval(() => console.log('tick'), 1000);
  }

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

  render() {
    return <div>Timer is running</div>;
  }
}

分享给朋友:

相关文章

如何实现vue

如何实现vue

安装 Vue.js 使用 npm 或 yarn 安装 Vue.js。确保已安装 Node.js 环境。 npm install vue # 或 yarn add vue 创建 Vue 实例 在 HT…

vue如何实现tap

vue如何实现tap

Vue 中实现类似移动端 tap 事件的方法 在 Vue 中可以通过以下几种方式实现类似移动端 tap(轻触)事件的效果: 使用第三方库 安装 v-tap 指令库可以快速实现 tap 事件: np…

react如何删除组件

react如何删除组件

删除 React 组件的几种方法 条件渲染法 通过状态控制组件是否渲染。当状态为 false 时,组件会被移除: const [showComponent, setShowComponent] =…

vue如何实现ifream

vue如何实现ifream

Vue 中实现 iframe 的方法 在 Vue 中可以通过多种方式实现 iframe 的嵌入和控制。以下是几种常见的方法: 使用 HTML 原生 iframe 标签 在 Vue 模板中直接使用…

react如何实现菜单

react如何实现菜单

使用 React 实现菜单的方法 使用状态管理控制菜单显示/隐藏 通过 useState 管理菜单的展开和收起状态,结合点击事件切换状态。 import { useState } from 'rea…

vue如何实现分业

vue如何实现分业

Vue 实现分页的方法 在 Vue 中实现分页功能通常需要结合后端接口或前端数据处理。以下是几种常见的实现方式: 使用第三方分页组件 许多 UI 库提供了现成的分页组件,例如 Element UI…