当前位置:首页 > React

react实现组件方式

2026-01-26 17:58:45React

React 实现组件的常见方式

React 提供了多种实现组件的方式,以下是主要的几种方法:

函数组件 函数组件是使用 JavaScript 函数定义的组件,简洁明了,适合无状态或使用 Hooks 的场景:

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

类组件 类组件通过继承 React.Component 实现,支持生命周期方法和状态管理:

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

箭头函数组件 箭头函数语法可以更简洁地定义函数组件:

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

高阶组件 (HOC) 高阶组件是一个函数,接收一个组件并返回一个新组件,用于复用逻辑:

function withLogging(WrappedComponent) {
  return class extends React.Component {
    componentDidMount() {
      console.log('Component mounted');
    }
    render() {
      return <WrappedComponent {...this.props} />;
    }
  };
}

Render Props 通过 prop 传递渲染逻辑,实现组件间的代码共享:

class MouseTracker extends React.Component {
  state = { x: 0, y: 0 };
  handleMouseMove = (event) => {
    this.setState({ x: event.clientX, y: event.clientY });
  };
  render() {
    return (
      <div onMouseMove={this.handleMouseMove}>
        {this.props.render(this.state)}
      </div>
    );
  }
}

自定义 Hooks 封装可复用的状态逻辑,供多个组件使用:

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

复合组件 通过组合多个组件实现复杂功能,如 Context API 提供者/消费者模式:

const ThemeContext = React.createContext('light');
function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

无渲染组件 只处理逻辑不渲染 UI 的组件,通过子组件或 render prop 输出结果:

function DataFetcher({ url, children }) {
  const [data, setData] = useState(null);
  useEffect(() => {
    fetch(url).then(res => res.json()).then(setData);
  }, [url]);
  return children(data);
}

每种方式适用于不同场景,函数组件和 Hooks 是现代 React 开发的主流选择,而类组件在维护旧代码时仍会见到。高阶组件和 render props 适用于复杂逻辑复用,自定义 Hooks 提供了更灵活的逻辑共享方式。

react实现组件方式

标签: 组件方式
分享给朋友:

相关文章

vue 实现组件刷新

vue 实现组件刷新

实现组件刷新的方法 在Vue中,组件刷新通常指重新渲染组件或重置组件状态。以下是几种常见的实现方式: 使用v-if控制渲染 通过v-if指令可以销毁并重新创建组件: <template&…

vue实现多级组件

vue实现多级组件

Vue 多级组件实现方法 在 Vue 中实现多级组件通常涉及父子组件通信、动态组件或递归组件等技术。以下是几种常见实现方式: 父子组件嵌套 通过逐层嵌套组件实现多级结构,适用于固定层级场景:…

vue实现下拉框组件

vue实现下拉框组件

Vue 下拉框组件实现 基础实现 创建基础下拉框组件,使用v-model实现双向数据绑定: <template> <div class="dropdown"> &…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Butto…

h5直播平台实现方式

h5直播平台实现方式

技术选型 H5直播平台的核心技术通常基于WebRTC或HLS协议。WebRTC适合低延迟互动场景,HLS更适合跨平台兼容性。前端可采用video.js或hls.js播放库,后端需要流媒体服务器如Ngi…

vue VUE实现日历组件功能

vue VUE实现日历组件功能

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