当前位置:首页 > React

react 实现append

2026-01-26 14:38:28React

在 React 中实现类似 jQuery 的 append 功能

React 采用声明式编程范式,与 jQuery 的直接 DOM 操作不同。以下是几种实现动态添加元素的方法:

使用状态管理动态内容

通过 React 的状态管理可以动态添加元素到组件中:

import { useState } from 'react';

function AppendExample() {
  const [items, setItems] = useState(['初始项']);

  const appendItem = () => {
    setItems([...items, `新项 ${items.length + 1}`]);
  };

  return (
    <div>
      <button onClick={appendItem}>添加元素</button>
      <ul>
        {items.map((item, index) => (
          <li key={index}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

使用 ref 直接操作 DOM

当确实需要直接操作 DOM 时,可以使用 ref:

import { useRef } from 'react';

function DirectAppend() {
  const containerRef = useRef(null);

  const appendElement = () => {
    const newElement = document.createElement('div');
    newElement.textContent = '动态添加的元素';
    containerRef.current.appendChild(newElement);
  };

  return (
    <div>
      <button onClick={appendElement}>添加元素</button>
      <div ref={containerRef}></div>
    </div>
  );
}

使用 React 门户(Portal)

对于需要将子节点渲染到 DOM 中不同位置的情况:

import { useState } from 'react';
import { createPortal } from 'react-dom';

function PortalExample() {
  const [show, setShow] = useState(false);

  return (
    <div>
      <button onClick={() => setShow(true)}>
        显示模态框
      </button>
      {show && createPortal(
        <div className="modal">
          <p>这是通过门户添加的内容</p>
          <button onClick={() => setShow(false)}>关闭</button>
        </div>,
        document.body
      )}
    </div>
  );
}

动态渲染组件数组

通过维护组件数组来实现动态添加:

function DynamicComponents() {
  const [components, setComponents] = useState([]);

  const addComponent = () => {
    setComponents([
      ...components,
      <div key={components.length}>组件 {components.length + 1}</div>
    ]);
  };

  return (
    <div>
      <button onClick={addComponent}>添加组件</button>
      {components}
    </div>
  );
}

注意事项

  • React 优先推荐使用状态管理而非直接 DOM 操作
  • 直接操作 DOM 可能会与 React 的虚拟 DOM 产生冲突
  • 确保为动态生成的元素添加唯一的 key 属性
  • 门户(Portal)适用于需要突破当前 DOM 层级的情况

react 实现append

标签: reactappend
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 t…