当前位置:首页 > React

React如何获取li

2026-02-11 21:13:44React

获取 DOM 中的 <li> 元素

在 React 中获取 <li> 元素可以通过以下几种方式实现:

使用 ref 获取单个 <li> 元素

React如何获取li

import React, { useRef, useEffect } from 'react';

function ListComponent() {
  const liRef = useRef(null);

  useEffect(() => {
    if (liRef.current) {
      console.log(liRef.current); // 获取到的 li 元素
    }
  }, []);

  return (
    <ul>
      <li ref={liRef}>Item 1</li>
      <li>Item 2</li>
    </ul>
  );
}

使用 querySelectorAll 获取所有 <li> 元素

React如何获取li

import React, { useEffect } from 'react';

function ListComponent() {
  useEffect(() => {
    const listItems = document.querySelectorAll('li');
    console.log(listItems); // NodeList 包含所有 li 元素
  }, []);

  return (
    <ul>
      <li>Item 1</li>
      <li>Item 2</li>
    </ul>
  );
}

通过事件处理程序获取 <li> 元素

function ListComponent() {
  const handleClick = (e) => {
    console.log(e.target); // 点击的 li 元素
  };

  return (
    <ul>
      <li onClick={handleClick}>Item 1</li>
      <li onClick={handleClick}>Item 2</li>
    </ul>
  );
}

动态渲染列表时获取特定 <li> 元素

function ListComponent({ items }) {
  const itemRefs = useRef([]);

  useEffect(() => {
    console.log(itemRefs.current); // 所有 li 元素的数组
  }, []);

  return (
    <ul>
      {items.map((item, index) => (
        <li 
          key={item.id}
          ref={(el) => (itemRefs.current[index] = el)}
        >
          {item.text}
        </li>
      ))}
    </ul>
  );
}

注意事项

  • 直接操作 DOM 不是 React 推荐的做法,应优先考虑使用状态管理
  • 使用 ref 时注意清理工作以避免内存泄漏
  • 动态列表中使用 ref 回调时要确保引用稳定性
  • 事件委托可能是比单独绑定更高效的方案

标签: Reactli
分享给朋友:

相关文章

React如何创建store

React如何创建store

创建 Redux Store 的基本步骤 安装 Redux 和 React-Redux 依赖包: npm install redux react-redux 创建 reducer 函数管理状态:…

React如何保持登录状态

React如何保持登录状态

使用本地存储(localStorage/sessionStorage) 将用户登录凭证(如token)存储在浏览器的localStorage或sessionStorage中。localStorage持…

React的isMounted如何使用

React的isMounted如何使用

isMounted的使用方法 React的isMounted方法曾用于检查组件是否已挂载到DOM中,但该方法已被弃用。官方推荐使用其他方式替代。 替代方案 使用useRef和useEffect组合实…

React如何定时刷新

React如何定时刷新

React 定时刷新的实现方法 在React中实现定时刷新可以通过多种方式完成,以下是几种常见的方法: 使用 setInterval 和 useEffect 利用React的useEffec…

React如何监听数据

React如何监听数据

监听数据变化的方法 在React中,监听数据变化通常通过组件的状态(state)和属性(props)管理机制实现。React的核心思想是数据驱动视图,当数据发生变化时,组件会自动重新渲染。 使用us…

React如何阻断render刷新

React如何阻断render刷新

使用 React.memo 进行组件记忆 React.memo 是一个高阶组件,用于对函数组件进行浅比较。当父组件重新渲染时,如果传递给子组件的 props 没有变化,React.memo 会阻止子组…