在 React.js 中调试代码的方法很多,下面按常用程度和场景给你一个系统性的总结,从最基础到进阶都有。
适用于:查看报错、打印变量
console.log('props', props);
console.log('state', this.state);
常用 API:
console.warn()
console.error()
console.table()
✅ 优点:简单直接
❌ 缺点:不够直观,刷新后丢失
Sources → 找到你的 JS 文件适合调试:
✅ 这是 React 调试的“必备工具”
<div>
{process.env.NODE_ENV === 'development' && (
<pre>{JSON.stringify(state, null, 2)}</pre>
)}
</div>
class ErrorBoundary extends React.Component {
state = { hasError: false }
static getDerivedStateFromError() {
return { hasError: true }
}
render() {
if (this.state.hasError) {
return <h2>出错了</h2>
}
return this.props.children
}
}
useEffect(() => {
console.log('effect 执行', count);
}, [count]);
npm install eslint-plugin-react-hooks
npm run dev
launch.json
{
"type": "chrome",
"request": "launch",
"name": "Debug React",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/src"
}
✅ 可以直接在 VSCode 里断点调试
| 问题 | 排查方式 |
|---|---|
| 页面不更新 | 检查 state 是否 immutable |
| useEffect 死循环 | 检查依赖数组 |
| props 不对 | React DevTools 看组件树 |
| 白屏 | 看 Console 报错 |
✅ 新手:Console + React DevTools
✅ 进阶:VSCode 断点 + Error Boundary
✅ 团队:ESLint + TypeScript
如果你愿意,可以告诉我:
我可以给你针对性的调试方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。