ReactJS 教程

ReactJS - 主页 ReactJS - 简介 ReactJS - 路线图 ReactJS - 安装 ReactJS - 功能 ReactJS - 优势和缺点 ReactJS - 架构 ReactJS - 创建 React 应用程序 ReactJS - JSX ReactJS - 组件 ReactJS - 嵌套组件 ReactJS - 使用组件 ReactJS - 集合组件 ReactJS - 样式 ReactJS - 属性 (props) ReactJS - 使用属性创建组件 ReactJS - props 验证 ReactJS - 构造函数 ReactJS - 组件生命周期 ReactJS - 事件管理 ReactJS - 创建事件感知组件 ReactJS - Expense Manager 事件 ReactJS - 状态管理 ReactJS - 状态管理 API ReactJS - 无状态组件 ReactJS - Hooks 进行状态管理 ReactJS - Hooks 的组件生命周期 ReactJS - 布局组件 ReactJS - 分页 ReactJS - Material UI ReactJS - Http 客户端编程 ReactJS - 表单编程 ReactJS - 受控组件 ReactJS - 非受控组件 ReactJS - Formik ReactJS - 条件渲染 ReactJS - 列表 ReactJS - Key 键 ReactJS - 路由 ReactJS - Redux ReactJS - 动画 ReactJS - Bootstrap ReactJS - Map ReactJS - 表格 ReactJS - 使用 Flux 管理状态 ReactJS - 测试 ReactJS - CLI 命令 ReactJS - 构建和部署 ReactJS - 示例

Hooks

ReactJS - Hooks 简介 ReactJS - 使用 useState ReactJS - 使用 useEffect ReactJS - 使用 useContext ReactJS - 使用 useRef ReactJS - 使用 useReducer ReactJS - 使用 useCallback ReactJS - 使用 useMemo ReactJS - 自定义 Hooks

ReactJS 高级

ReactJS - 可访问性 ReactJS - 代码拆分 ReactJS - 上下文 ReactJS - 错误边界 ReactJS - 转发 Refs ReactJS - 片段 ReactJS - 高阶组件 ReactJS - 与其他库集成 ReactJS - 优化性能 ReactJS - Profiler API ReactJS - Portals ReactJS - 不使用 ES6 ECMAScript ReactJS - 不使用 JSX 的 React ReactJS - Reconciliation ReactJS - Refs 和 DOM ReactJS - 渲染道具 ReactJS - 静态类型检查 ReactJS - 严格模式 ReactJS - Web 组件

其他概念

ReactJS - 日期选择器 ReactJS - Helmet ReactJS - 内联样式 ReactJS - PropTypes ReactJS - BrowserRouter ReactJS - DOM ReactJS - 轮播 ReactJS - 图标 ReactJS - 表单组件 ReactJS - 参考 API

ReactJS 有用资源

ReactJS - 快速指南 ReactJS - 备忘录 Axios - 备忘录 ReactJS - 有用资源 ReactJS - 讨论


ReactJS - findRenderedDOMComponentWithClass()

在 ReactJS 中,findRenderedDOMComponentWithClass() 方法用于测试。它帮助我们在 DOM 中找到具有特定 CSS 类的渲染组件。此方法主要用于测试 React 组件。

在为我们的 React 组件编写测试时,我们可以检查具有给定 CSS 类的组件是否出现在渲染输出中。这正是 findRenderedDOMComponentWithClass() 所做的。因此,我们将渲染的组件和我们想要的 CSS 类传递给此函数。然后返回具有该类的第一个 DOM 元素。

请记住,此函数在以前版本的 React 和测试框架中更常用。更多当前测试库可以提供不同的方法来实现相同的目标。

语法

findRenderedDOMComponentWithClass(
   tree,
   className
)

参数

  • tree − 它是我们要在其中搜索的显示组件或组件树。它是从测试库接收的 React 组件的渲染输出。

  • className − 表示我们想要在树中找到的 CSS 类的字符串。该方法将搜索具有此特定类的 DOM 元素。

返回值

该方法将返回具有给定类的第一个 DOM 元素,允许我们使用其他操作或断言继续测试。

示例

示例 − 基本 React 应用

应用说明:这就像一个在网页上显示"Hello, React!"的网页。想象一下这是一张简单的贺卡。

测试说明 − 我们要确保贺卡的特定部分(段落)在那里。因此,我们使用工具来找到该部分并检查它是否是我们想要的。

App.js

import React from 'react';
import './App.css';

function App() {
   return (
      <div className="app-container App">
         <h1>Hello, React!</h1>
         <p className="app-paragraph">This is a simple React app.</p>
      </div>
   );
}

export default App;

App.test.js

import { render } from '@testing-library/react';
import findRenderedDOMComponentWithClass from 'path-to-findRenderedDOMComponentWithClass';
import App from './App';

test('finds a paragraph with a specific class', () => {
   const { container } = render(<App />);
   const foundElement = findRenderedDOMComponentWithClass(container, 'app-paragraph');
   
   // 现在我们可以基于 foundElement 做出断言或测试
});

输出

hello simple reactapp

示例 − 带组件的 React 应用

应用说明 − 假设我们在应用中有一个网页,该网页有一个标题(页眉)和一个段落。它就像一个顶部有标题的小网站。

测试说明 − 我们要确保标题在那里。因此,我们使用工具来查找标题并检查它是否在正确的位置。

Header.js

import React from 'react';

function Header() {
   return <h1 className="header-title">Welcome to My App</h1>;
}

export default Header;

App.js

import React from 'react';
import Header from './Header';
import './App.css';

export default function App() {
   return (
      <div className="app-container">
         <Header />
         <p className="app-paragraph">This app has a header component.</p>
      </div>
   );
}

App.test.js

import { render } from '@testing-library/react';
import findRenderedDOMComponentWithClass from 'path-to-findRenderedDOMComponentWithClass';
import App from './App';

test('finds a header with a specific class', () => {
   const { container } = render(<App />);
   const foundElement = findRenderedDOMComponentWithClass(container, 'header-title');

});

输出

welcome to my app

示例 − 具有动态内容的 React 应用

应用说明 − 这就像一个可以显示不同消息的网页。它有点像一个可以显示变化信息的招牌。

测试说明 − 我们希望确保变化的消息存在。因此,我们使用工具来找到该部分并检查它是否显示正确的消息。

DynamicContent.js

import React from 'react';

function DynamicContent({ content }) {
   return <div className="dynamic-content">{content}</div>;
}

export default DynamicContent;

App.js

import React from 'react';
import DynamicContent from './DynamicContent';
import './App.css';

function App() {
   return (
      <div className="app-container App">
         <DynamicContent content="This content is dynamic!" />
         <p className="app-paragraph">This app includes dynamic content.</p>
      </div>
   );
}

App.test.js

import { render } from '@testing-library/react';
import findRenderedDOMComponentWithClass from 'path-to-findRenderedDOMComponentWithClass';
import App from './App';

test('finds a dynamic content with a specific class', () => {
   const { container } = render(<App />);
   const foundElement = findRenderedDOMComponentWithClass(container, 'dynamic-content');

});

输出

dynamic content

摘要

此函数用于测试 React 组件。它帮助我们在运行测试时在 React 组件的最终结果中找到特定元素。假设我们有一张一群人的照片,我们想找到一个戴着红帽子的人,我们将使用此函数在照片中找到那个人。它是一个有用的测试工具,可以确保我们的组件按预期运行。

reactjs_reference_api.html