Guide de débogage de code React : Comment localiser et résoudre rapidement les bogues frontaux
Citation :
Lors du développement d'applications React, vous rencontrez souvent une variété de bogues qui peuvent faire planter l'application ou provoquer des erreurs de comportement. Par conséquent, maîtriser les compétences de débogage est une capacité essentielle pour tout développeur React. Cet article présentera quelques techniques pratiques pour localiser et résoudre les bogues frontaux, et fournira des exemples de code spécifiques pour aider les lecteurs à localiser et à résoudre rapidement les bogues dans les applications React.
1. Sélection d'outils de débogage :
Dans les applications React, il existe de nombreux outils qui peuvent nous aider à déboguer le code. Voici plusieurs outils de débogage couramment utilisés :
2. Localisation des exceptions des composants React :
Exemple de code :
Supposons que nous ayons un composant TodoList qui affiche une liste de tâches.
import React, { useState } from 'react'; function TodoList() { const [todos, setTodos] = useState([]); function addTodo() { setTodos([...todos, { id: Date.now(), text: 'New todo' }]); } return ( <div> <button onClick={addTodo}>Add Todo</button> {todos.map((todo) => ( <div key={todo.id}>{todo.text}</div> ))} </div> ); } export default TodoList;
Supposons qu'une erreur se produise lors du rendu de la liste de tâches et que le résultat du rendu correspondant ne puisse pas être affiché sur la page. Nous pouvons utiliser le panneau Éléments des outils de développement Chrome pour vérifier s'il existe des exceptions de rendu et voir si le statut et les accessoires sont transmis correctement.
Exemple de code :
Modifiez le composant TodoList ci-dessus pour générer intentionnellement une erreur lors du rendu de la liste de tâches.
import React, { useState } from 'react'; function TodoList() { const [todos, setTodos] = useState([]); function addTodo() { setTodos([...todos, { id: Date.now(), text: 'New todo' }]); } // 引发错误:todos.map is not a function const renderedTodos = todos.map((todo) => <div key={todo.id}>{todo.text}</div>); return ( <div> <button onClick={addTodo}>Add Todo</button> {renderedTodos} </div> ); } export default TodoList;
Après avoir actualisé la page, vérifiez le panneau de console des outils de développement Chrome et vous pouvez voir le message d'erreur : todos.map n'est pas une fonction
. Grâce à ce message d'erreur, nous pouvons localiser l'emplacement où l'erreur s'est produite dans la ligne de code todos.map
. todos.map is not a function
。通过这个错误信息,我们可以定位到错误发生的位置是在todos.map
这一行代码。
三、使用断点调试:
示例代码:
在上面的TodoList组件中,我们可以在点击按钮添加待办事项时设置一个断点。
import React, { useState } from 'react'; function TodoList() { const [todos, setTodos] = useState([]); function addTodo() { debugger; // 设置断点 setTodos([...todos, { id: Date.now(), text: 'New todo' }]); } return ( <div> <button onClick={addTodo}>Add Todo</button> </div> ); } export default TodoList;
刷新页面并打开Chrome开发者工具的Sources面板,然后点击按钮。代码会在debugger
Exemple de code :
import { createStore } from 'redux'; const initialState = { todos: [], filter: 'all', }; // 定义reducer函数 function reducer(state = initialState, action) { switch (action.type) { case 'ADD_TODO': return { ...state, todos: [...state.todos, action.payload], }; case 'SET_FILTER': return { ...state, filter: action.payload, }; default: return state; } } // 创建store const store = createStore(reducer); export default store;
debugger
. À ce moment, nous pouvons visualiser l'exécution du code ligne par ligne et vérifier si les valeurs des variables sont correctes. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!