当前位置:首页 > React

react 实现append

2026-01-26 14:38:28React

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

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

使用状态管理动态内容

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

react 实现append

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:

react 实现append

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 层级的情况

标签: reactappend
分享给朋友:

相关文章

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

如何启动react

如何启动react

安装Node.js 确保系统已安装Node.js(建议使用LTS版本),可通过官网下载并安装。安装完成后,在终端运行以下命令验证版本: node -v npm -v 创建React项目 使用官方工具…

react 如何启动

react 如何启动

创建 React 项目 使用官方工具 create-react-app 快速初始化项目,需提前安装 Node.js(版本 ≥ 14.0.0)和 npm/yarn: npx create-react-…

react就业如何

react就业如何

React 就业市场现状 React 作为当前主流前端框架之一,就业需求持续旺盛。国内外互联网企业、中大型公司以及初创团队普遍采用 React 技术栈,尤其在 Web 应用、移动端(React Nat…