当前位置:首页 > React

react如何实现组件

2026-03-30 20:07:39React

React 组件实现方法

React 组件可以通过函数组件和类组件两种方式实现,以下是具体方法和示例:

函数组件实现

函数组件是 React 中最简单的组件形式,通过 JavaScript 函数定义:

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

函数组件可以使用 Hooks 来管理状态和生命周期:

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>
  );
}

类组件实现

类组件通过 ES6 的 class 语法定义,继承 React.Component:

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

类组件可以管理状态和使用生命周期方法:

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

  componentDidMount() {
    document.title = `You clicked ${this.state.count} times`;
  }

  componentDidUpdate() {
    document.title = `You clicked ${this.state.count} times`;
  }

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

组件组合

组件可以嵌套组合使用:

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

组件间通信

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

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

  return (
    <div>
      <Child value={value} onChange={setValue} />
    </div>
  );
}

function Child({ value, onChange }) {
  return <input value={value} onChange={e => onChange(e.target.value)} />;
}

高阶组件

高阶组件(HOC)是接收组件并返回新组件的函数:

function withLogging(WrappedComponent) {
  return function(props) {
    console.log('Rendering:', WrappedComponent.name);
    return <WrappedComponent {...props} />;
  };
}

const EnhancedComponent = withLogging(MyComponent);

自定义 Hooks

自定义 Hook 可以复用组件逻辑:

react如何实现组件

function useCounter(initialValue = 0) {
  const [count, setCount] = useState(initialValue);
  const increment = () => setCount(count + 1);
  return { count, increment };
}

function MyComponent() {
  const { count, increment } = useCounter();
  return <button onClick={increment}>Clicked {count} times</button>;
}

分享给朋友:

相关文章

vue如何实现排序

vue如何实现排序

实现数组排序 在Vue中实现数组排序可以通过computed属性或methods来处理。假设有一个数组items,可以创建一个计算属性返回排序后的数组: data() { return {…

vue如何实现放大缩小

vue如何实现放大缩小

Vue 实现放大缩小功能 在 Vue 中实现放大缩小功能可以通过多种方式实现,以下介绍几种常见的方法: 使用 CSS transform 缩放 通过绑定 CSS 的 transform: scale…

如何实现vue表格联动

如何实现vue表格联动

实现 Vue 表格联动的方法 数据绑定与响应式更新 通过 Vue 的响应式特性,将多个表格的数据绑定到同一个数据源或计算属性。当一个表格的数据发生变化时,另一个表格会自动更新。例如: data()…

uniapp倒计时组件

uniapp倒计时组件

uniapp倒计时组件实现方法 使用内置组件实现 uniapp提供了<countdown>组件用于倒计时功能,支持自定义格式和样式。示例代码如下: <countdown :t…

uniapp组件写法

uniapp组件写法

Uniapp 组件的基本写法 Uniapp 的组件写法与 Vue 类似,支持单文件组件(.vue 文件)。一个基本的组件通常包含三个部分:<template>、<script>…

vue VUE实现日历组件功能

vue VUE实现日历组件功能

Vue 日历组件实现方法 基础日历结构 使用Vue的模板语法构建日历的HTML结构,通常包含头部(年月显示、切换按钮)和日历表格(星期标题和日期格子)。 <template> <…