【前端】React 组件调试小技巧

简介: 【前端】React 组件调试小技巧

一般我们在调试单个React组件时,借助于热更新,我们改改代码可以在浏览器实时看到更新,但当项目比较大的时候,我们调试的页面在整个应用中的路由层级比较深,就会导致:每一次咱们修改完一个地方的代码,浏览器自动刷新到了首页,并进入修改的页面,才能看到更新之后的变化。


介于此,这篇分享一个前端调试React组件的方法。




一、使用 createPortal 构建测试组件


scss代码:


.test-container {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background-color: white;
  z-index: 99999999999999999999999999999;
  top: 0;
}
  • position: fixed 是 CSS 中一种定位方式,它可以让元素相对于浏览器窗口固定不动,无论页面滚动到哪个位置,该元素都会保持在窗口的固定位置。具体来说,position: fixed 的元素会被从文档流中拖出来,并相对于浏览器窗口进行定位,而不是相对于其父元素。因此,固定定位的元素不会影响其他元素的布局,也不会受到页面滚动的影响。使用固定定位的元素通常用于创建导航栏、悬浮广告或工具栏等需要始终保持在页面顶部或底部的元素。
  • 这串样式代码可以让我们的测试组件位于窗口最前端,调试代码时就不需要跳转页面了



tsx代码:

import React, {
    FC,
    useState,
    useEffect,
    ReactNode
} from "react";
import './test-container.scss'
import {createPortal} from "react-dom";
interface TestContainerProps {
    element: ReactNode;
}
export const TestContainer: FC<TestContainerProps> = (props) => {
    const [isReady, setIsReady] = useState<boolean>(false)
    useEffect(() => {
        setIsReady(true)
    }, [])
    if (!isReady) return null
    return createPortal(<article className={"test-container"}>
        {props.element}
    </article>, document.body)
}
TestContainer.defaultProps = {}
export {TestContainer as default} from './test-container'
  • 该组件用起来很简单,将需要测试的组件作为一个ReactNode传进来就可以了。



使用示例如下:

<TestContainer element={<IMarkdown content={content}/>} />


  • IMarkdown 是我需要测试的组件(对react-markdown的封装)。

总结:作为一个开发,如果开发过程中有件事一直在重复做,那么就应该想解决方案,解决这个问题。比如重复的代码,就可以封装起来。比如重复的文件复制粘贴,在windows下可以写bat脚本,在linux下可以写shell脚本;比如每天都要执行测试用例的执行,就可以集成到CI/CD(continuous integration/continuous deloyment/delivery)中。




目录
相关文章
|
13天前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
42 9
|
18天前
|
前端开发 JavaScript Android开发
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第27天】React Native 是跨平台开发领域的佼佼者,凭借其独特的跨平台能力和高效的开发体验,成为许多开发者的首选。本文探讨了 React Native 的优势与挑战,包括跨平台开发能力、原生组件渲染、性能优化及调试复杂性等问题,并通过代码示例展示了其实际应用。
45 2
|
20天前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
20天前
|
前端开发 JavaScript 开发者
“揭秘React Hooks的神秘面纱:如何掌握这些改变游戏规则的超能力以打造无敌前端应用”
【10月更文挑战第25天】React Hooks 自 2018 年推出以来,已成为 React 功能组件的重要组成部分。本文全面解析了 React Hooks 的核心概念,包括 `useState` 和 `useEffect` 的使用方法,并提供了最佳实践,如避免过度使用 Hooks、保持 Hooks 调用顺序一致、使用 `useReducer` 管理复杂状态逻辑、自定义 Hooks 封装复用逻辑等,帮助开发者更高效地使用 Hooks,构建健壮且易于维护的 React 应用。
28 2
|
20天前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
19天前
|
前端开发 Android开发 开发者
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第26天】近年来,React Native凭借其跨平台开发能力在移动应用开发领域迅速崛起。本文将探讨React Native的优势与挑战,并通过示例代码展示其应用实践。React Native允许开发者使用同一套代码库同时构建iOS和Android应用,提高开发效率,降低维护成本。它具备接近原生应用的性能和用户体验,但也面临平台差异、原生功能支持和第三方库兼容性等挑战。
28 0
|
20天前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】 React与Vue:前端框架的巅峰对决与选择策略
|
前端开发 JavaScript 中间件
react前端框架dva(四)
这篇文档梳理了基于 dva-cli 使用 dva 的最小知识集,让你可以用最少的时间掌握创建类似 dva-hackernews 的全部知识,并且不需要掌握额外的冗余知识。
2890 0
|
前端开发 API 测试技术
|
6月前
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
357 0