【前端】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)中。




目录
相关文章
|
1月前
|
前端开发 JavaScript API
阿珊比较Vue和React:两大前端框架的较量
阿珊比较Vue和React:两大前端框架的较量
|
1月前
|
前端开发 JavaScript
前端项目公共组件封装思想
该文介绍了如何封装通用组件,如表单搜索、表格展示和分页器。首先,通过抽离出公共部分,创建`TableContainer`组件,利用具名插槽插入`navbar`和`table`,并通过props传递标题。然后在父组件中使用具名插槽和子组件实现具体功能。文中还展示了更复杂的组件封装示例,通过props实现数据双向绑定,以`el-pagination`为例,利用`sync`修饰符和`computed`属性监听并更新父组件状态,实现分页功能。文章最后提到了内容来源于哪。
|
3天前
|
前端开发 JavaScript 开发者
探索现代前端框架:从React到Vue.js
【6月更文挑战第26天】在数字时代的浪潮中,前端框架如同建筑的基石,支撑着互联网界面的创新与发展。本文将带领读者穿梭于React与Vue.js这两个最受欢迎的前端框架之间,揭示它们的核心特性、设计理念以及在实际开发中的应用差异。通过比较分析,我们将理解每个框架的优势和局限,并探索如何根据项目需求作出明智的选择。加入我们,一起深入前端技术的瑰丽世界,发现构建未来网络界面的无限可能。
|
4天前
|
前端开发 JavaScript 数据管理
引领潮流:React框架在前端开发中的革新与实践
React,始于2013年,由Facebook驱动,以其组件化、Virtual DOM、单向数据流和Hooks改革前端。组件化拆分UI,提升代码复用;Virtual DOM优化渲染性能;Hooks简化无类组件的状态管理。庞大的生态系统,包括Redux、React Router等库,支持各种需求。例如,`useState` Hook在计数器应用中实现状态更新,展示React的实用性。React现已成为现代Web开发的首选框架。【6月更文挑战第24天】
24 2
|
14天前
|
前端开发 JavaScript 测试技术
Jest与React Testing Library:前端测试的最佳实践
Jest和React Testing Library是React应用测试的核心工具。安装相关依赖后,在`jest.config.js`中配置Jest。测试时,编写描述性测试用例,使用`render`、`fireEvent`和`screen`来检查组件行为。Jest提供模拟功能,如模拟API调用。测试组件交互性时,模拟用户行为并验证状态变化。确保覆盖边缘情况,使用代码覆盖率报告评估测试完整性,并将测试集成到CI流程中。
15 1
|
24天前
|
前端开发
前端react入门day02-React中的事件绑定与组件
前端react入门day02-React中的事件绑定与组件
|
24天前
|
前端开发
前端React篇之React setState 调用的原理、React setState 调用之后发生了什么?是同步还是异步?
前端React篇之React setState 调用的原理、React setState 调用之后发生了什么?是同步还是异步?
|
2天前
|
前端开发 JavaScript 小程序
技术经验解读:你所不知的十二个前端组件库
技术经验解读:你所不知的十二个前端组件库
|
4天前
|
存储 缓存 JavaScript
【前端 - Vue】之 Keep-Alive缓存组件使用语法及原理解析,超详细!
【前端 - Vue】之 Keep-Alive缓存组件使用语法及原理解析,超详细!
|
30天前
|
JavaScript 前端开发 API
【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!
【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!
【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!