当前位置:首页 > React

如何写react 组件

2026-03-10 14:11:55React

创建React组件的基本方法

React组件可以通过函数式组件或类组件两种方式创建。以下是具体实现方法:

函数式组件

函数式组件是当前React开发中的首选方式,代码更简洁:

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

使用ES6箭头函数写法:

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

类组件

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

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

组件使用props

props是组件接收的外部参数:

function Greeting(props) {
  return <p>Welcome, {props.userName}!</p>;
}

// 使用时
<Greeting userName="John" />

组件使用state

函数式组件使用useState Hook管理状态:

如何写react 组件

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

类组件通过this.state管理状态:

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

组件生命周期

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

import { useEffect } from 'react';

function Example() {
  useEffect(() => {
    console.log('Component mounted');
    return () => console.log('Component will unmount');
  }, []);

  return <div>Example</div>;
}

类组件通过生命周期方法处理:

如何写react 组件

class Example extends React.Component {
  componentDidMount() {
    console.log('Component mounted');
  }

  componentWillUnmount() {
    console.log('Component will unmount');
  }

  render() {
    return <div>Example</div>;
  }
}

事件处理

React事件使用驼峰命名法:

function ActionLink() {
  const handleClick = (e) => {
    e.preventDefault();
    console.log('Link clicked');
  };

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

样式处理

内联样式使用对象形式:

const divStyle = {
  color: 'blue',
  backgroundColor: 'lightgray'
};

function StyledComponent() {
  return <div style={divStyle}>Styled text</div>;
}

使用CSS类名:

import './MyComponent.css';

function MyComponent() {
  return <div className="my-style">Styled text</div>;
}

组件组合

组件可以组合使用形成更复杂的UI:

function App() {
  return (
    <div>
      <Welcome name="Sara" />
      <Welcome name="Cahal" />
      <Welcome name="Edite" />
    </div>
  );
}

最佳实践

  1. 组件命名使用PascalCase
  2. 单一职责原则,保持组件小巧
  3. 合理拆分大型组件
  4. 使用PropTypes进行类型检查
  5. 优先使用函数式组件和Hooks
  6. 避免在render方法中进行复杂计算

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

相关文章

vue组件传值实现分页

vue组件传值实现分页

Vue组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息:…

react如何删除组件

react如何删除组件

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

vue实现分页组件

vue实现分页组件

Vue 分页组件实现 基础分页组件结构 创建一个名为 Pagination.vue 的文件,包含以下基础模板和逻辑: <template> <div class="pagina…

vue实现组件拖动

vue实现组件拖动

Vue 实现组件拖动的几种方法 使用 HTML5 拖放 API HTML5 原生提供了拖放 API,可以通过 draggable 属性实现基础拖拽功能。在 Vue 中可以通过事件绑定实现交互逻辑。…

vue组件实现原理

vue组件实现原理

Vue 组件实现原理 Vue 组件的核心实现基于以下机制: 组件注册与模板解析 Vue 组件通过 Vue.component() 或单文件组件(.vue 文件)注册。模板会被编译成渲染函数,最终生成…

vue 实现通用组件

vue 实现通用组件

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