• Chrome DOM断点之实现源码追溯


    前言:

    DOM断点,相信绝大多数的前端同学是知道这一个知识点的,但很多可能停留在技术的表面;

    下面我用代码的方式一步一步来讲解如何在实际过程中,使用DOM断点的方式来来实现追溯源码

    步骤:

    1.首先我们通过 create-react-app新起一个react的脚手架;

    2. 将App.js 文件替换成如下代码:

    1. import { useEffect, useState } from 'react';
    2. import logo from './logo.svg';
    3. import './App.css';
    4. function App() {
    5. const [show, setShow] = useState(true);
    6. useEffect(() => {
    7. setTimeout(() => {
    8. setShow(false)
    9. }, 2000)
    10. }, [])
    11. return (
    12. <div className="App">
    13. <header className="App-header">
    14. <img src={logo} className="App-logo" alt="logo" />
    15. <p>
    16. Edit <code>src/App.jscode> and save to reload.
    17. p>
    18. <a
    19. className="App-link"
    20. href="https://reactjs.org"
    21. target="_blank"
    22. rel="noopener noreferrer"
    23. >
    24. Learn React
    25. a>
    26. {
    27. show && <p>你的牧游哥!p>
    28. }
    29. header>
    30. div>
    31. );
    32. }
    33. export default App;

    3. 我们现在看一下视图的gif:

    由于不能放置gif, 我们看一下代码逻辑就能看出来,“你的牧游哥!”文字 在停留2秒钟又消失了。

    分析:

    如果这个脚手架已经发布到域名上去了,那么我们该如何定位出隐藏代码的具体位置,从而分析出隐藏的具体原因是什么呢?

    解决:

    其实chrome有一个很强大的功能,  找到DOM元素,然后右键,有一个发生中断的条件,分别是子树修改、属性修改和移除节点;这边解释一下:

    子树修改:如果当前DOM元素的子节点发生改变,比如移位、或者子节点的属性被修改,都会触发chrome的debugger程序;

    属性修改:如果当前DOM元素的任意属性发生改变,也会触发chrome的debugger程序;

    移除节点:如果当前DOM元素的子节点被删除了,也会触发chrome的debugger程序;

    如上图所示,这种场景下,我们勾选子树修改和移除节点;再次刷新页面;

    紧接着,我们走到下图的断点位置,此时断点的代码是react的源码, 

    如下图所示,我们可以通过调用堆栈的方式向上追溯,找到我们所需要的demo源码文件位置,并打开源码文件。

     此时就找到了demo的具体代码咯。

    如果本文对你有用,请动动小手帮忙点赞 + 关注,感谢!

    参考分享链接:你真的会使用DOM断点吗?_哔哩哔哩_bilibili

  • 相关阅读:
    LeetCode-739-每日温度-单调栈
    ROS机器人应用(5)—— 键盘和发布话题控制小车移动
    RSA加密原理与RSA公钥加密系统、数字签名
    数据结构(单链表)
    设计模式—结构型模式之适配器模式
    Java的自动装箱与拆箱详细分析
    【Python】可设置抽奖者权重的抽奖脚本
    Cookie与Session简单入门
    Spring Security - 如何修复 WebSecurityConfigurerAdapter 已弃用
    应该如何进行程序化交易系统的检验?
  • 原文地址:https://blog.csdn.net/u014165391/article/details/127704802