当前位置:首页 > React

react如何写组件

2026-03-31 13:13:50React

React 组件的编写方法

React 组件可以通过函数组件和类组件两种方式编写,以下是具体实现方法。

函数组件

函数组件是使用 JavaScript 函数定义的组件,适用于无状态或使用 Hooks 的场景。

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

使用箭头函数简化:

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

类组件

类组件通过继承 React.Component 实现,适用于需要生命周期或状态的场景。

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

使用状态(Hooks)

在函数组件中使用 useState Hook 管理状态。

import React, { useState } from 'react';

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

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

生命周期方法(类组件)

类组件可以通过生命周期方法处理组件不同阶段的行为。

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

  componentDidMount() {
    this.interval = setInterval(() => {
      this.setState({ seconds: this.state.seconds + 1 });
    }, 1000);
  }

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

  render() {
    return <div>Seconds: {this.state.seconds}</div>;
  }
}

事件处理

在组件中绑定事件处理函数。

function ButtonClick() {
  const handleClick = () => {
    alert('Button clicked!');
  };

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

条件渲染

根据条件动态渲染内容。

function UserGreeting(props) {
  if (props.isLoggedIn) {
    return <h1>Welcome back!</h1>;
  }
  return <h1>Please sign in.</h1>;
}

列表渲染

使用 map 渲染列表数据。

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

Props 类型检查

使用 PropTypes 进行类型检查。

import PropTypes from 'prop-types';

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

Greeting.propTypes = {
  name: PropTypes.string.isRequired,
};

默认 Props

为组件设置默认属性值。

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

Greeting.defaultProps = {
  name: 'Guest',
};

组合组件

通过组合多个组件构建复杂 UI。

react如何写组件

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

以上方法涵盖了 React 组件的基本编写方式,可以根据需求选择函数组件或类组件,并结合状态管理、生命周期和事件处理实现更复杂的功能。

标签: 组件如何写
分享给朋友:

相关文章

vue如何实现目录组件

vue如何实现目录组件

实现目录组件的基本思路 在Vue中实现目录组件通常需要结合页面内容的结构化数据(如标题层级),通过动态渲染生成可交互的目录。核心步骤包括提取标题、生成目录结构、实现滚动联动等。 提取标题信息 通过d…

vue radio组件实现

vue radio组件实现

Vue Radio 组件实现 在 Vue 中实现 Radio 组件可以通过原生 HTML 的 <input type="radio"> 结合 Vue 的响应式特性来完成。以下是几种常见的实…

vue实现高阶组件

vue实现高阶组件

Vue 高阶组件实现方法 高阶组件(HOC)是一种复用组件逻辑的模式,通过函数包裹组件并返回新组件实现。Vue 中可通过以下方式实现: 使用 render 函数 通过函数接收组件选项并返回新组件选项…

vue 实现通用组件

vue 实现通用组件

Vue 实现通用组件的方法 封装可复用的组件 将通用功能抽象为独立组件,通过props接收外部数据,通过events与父组件通信。例如封装按钮、输入框、弹窗等基础组件。 使用插槽增强灵活性 通过默认…

vue实现组件化

vue实现组件化

Vue 组件化实现方法 组件定义 使用 .vue 单文件组件格式,包含 <template>、<script> 和 <style> 三个部分: <templ…

vue实现组件递归

vue实现组件递归

递归组件的实现方法 在Vue中实现递归组件,核心是通过组件在自身模板中调用自身。需要明确递归终止条件以避免无限循环。 定义递归组件 给组件设置name选项,便于在模板中自引用: export de…