当前位置:首页 > React

react组件如何开发

2026-03-31 08:46:02React

React 组件开发指南

函数组件与类组件

函数组件是React推荐的现代写法,使用Hooks管理状态和生命周期。类组件通过extends React.Component实现,适用于需要复杂生命周期控制的场景。

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

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

状态管理

函数组件使用useState Hook管理局部状态,类组件通过this.statethis.setState()实现状态更新。

// 函数组件状态
function Counter() {
  const [count, setCount] = useState(0);
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

// 类组件状态
class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }
  render() {
    return <button onClick={() => this.setState({ count: this.state.count + 1 })}>
      {this.state.count}
    </button>;
  }
}

生命周期处理

函数组件使用useEffect Hook替代生命周期方法,类组件直接实现componentDidMount等方法。

react组件如何开发

// 函数组件生命周期
function DataFetcher() {
  useEffect(() => {
    fetchData(); // componentDidMount
    return () => cleanup(); // componentWillUnmount
  }, [deps]); // componentDidUpdate
}

// 类组件生命周期
class DataFetcher extends React.Component {
  componentDidMount() { fetchData(); }
  componentWillUnmount() { cleanup(); }
  componentDidUpdate(prevProps) { /*...*/ }
}

事件处理

React事件使用驼峰命名,函数组件通过const定义处理函数,类组件通常需要绑定this

// 函数组件事件
function Button() {
  const handleClick = () => console.log('Clicked');
  return <button onClick={handleClick}>Click</button>;
}

// 类组件事件
class Button extends React.Component {
  handleClick = () => console.log('Clicked');
  render() {
    return <button onClick={this.handleClick}>Click</button>;
  }
}

组件通信

父组件通过props向子组件传递数据,子组件通过回调函数与父组件通信。复杂场景可使用Context或状态管理库。

react组件如何开发

// 父子组件通信
function Parent() {
  const [value, setValue] = useState('');
  return <Child value={value} onChange={setValue} />;
}

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

性能优化

使用React.memo缓存函数组件,类组件继承PureComponent实现浅比较。避免在render中创建新对象/函数。

// 函数组件优化
const MemoComponent = React.memo(function MyComponent(props) {
  /* 仅在props改变时重新渲染 */
});

// 类组件优化
class PureComponent extends React.PureComponent {
  render() { /* 自动浅比较props和state */ }
}

组件设计模式

容器组件负责数据逻辑,展示组件专注UI渲染。高阶组件(HOC)和自定义Hook可用于复用逻辑。

// 高阶组件示例
function withLogger(WrappedComponent) {
  return function(props) {
    console.log('Rendered:', props);
    return <WrappedComponent {...props} />;
  };
}

// 自定义Hook示例
function useWindowSize() {
  const [size, setSize] = useState({ width: window.innerWidth, height: window.innerHeight });
  useEffect(() => {
    const handleResize = () => setSize({ width: window.innerWidth, height: window.innerHeight });
    window.addEventListener('resize', handleResize);
    return () => window.removeEventListener('resize', handleResize);
  }, []);
  return size;
}

标签: 组件react
分享给朋友:

相关文章

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…

vue动态组件实现

vue动态组件实现

Vue 动态组件实现方法 使用 component 标签与 is 属性 通过 Vue 内置的 <component> 标签和 is 属性实现动态组件切换。is 的值可以是已注册的组件名或导…

vue实现多级组件

vue实现多级组件

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

vue组件实现

vue组件实现

Vue 组件实现 Vue 组件是 Vue.js 的核心特性之一,允许开发者将 UI 拆分为独立、可复用的模块。以下是实现 Vue 组件的几种常见方式: 单文件组件(SFC) 单文件组件是 Vue 中…

react如何diff

react如何diff

React Diff 算法原理 React 的 Diff 算法是 Virtual DOM 的核心部分,用于高效更新真实 DOM。其核心思想是通过对比新旧 Virtual DOM 树的差异,最小化 DO…

react如何拓展

react如何拓展

React 拓展方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式,通过接收一个组件并返回一个新组件实现功能拓展。例如,为组件添加日志功能: function withLogging…