Maison > interface Web > js tutoriel > Mon parcours React : jour 28

Mon parcours React : jour 28

DDD
Libérer: 2025-01-03 20:28:40
original
860 Les gens l'ont consulté

My React Journey: Day 28

Créer une liste de tâches dans React

Aujourd'hui, j'ai travaillé sur un projet React pour créer une application de liste de tâches simple mais puissante. Ce projet a approfondi ma compréhension des hooks React, de la gestion des états et de la gestion des événements tout en me permettant d'améliorer les fonctionnalités avec des fonctionnalités supplémentaires telles que le déplacement de tâches vers le haut ou vers le bas.

Voici un aperçu de ce que j'ai appris et mis en œuvre.

1. Configuration du composant
J'ai structuré mon ToDoList.jsx pour utiliser le hook useState pour gérer les tâches. Cela m'a permis de mettre à jour et de restituer dynamiquement la liste des tâches. Vous trouverez ci-dessous la configuration de base pour la gestion des tâches :

import React, { useState } from 'react';

export default function ToDoList() {
  const [tasks, setTasks] = useState([]);
  const [newTask, setNewTask] = useState("");

  function handleInputChange(event) {
    setNewTask(event.target.value); // Enables us to see what we type
  }

  function addTask() {
    if (newTask.trim() !== "") {
      setTasks(t => [...t, newTask]); // Adds the new task to the task list
      setNewTask(""); // Resets the input field
    }
  }
}
Copier après la connexion

2. Ajout et suppression de tâches
J'ai appris à manipuler l'état pour ajouter et supprimer des tâches. La fonction addTask vérifie si l'entrée est valide avant de l'ajouter, tandis que deleteTask supprime une tâche spécifique en fonction de son index :

function deleteTask(index) {
  const updatedTasks = tasks.filter((_, i) => i !== index); // Removes the task at the given index
  setTasks(updatedTasks);
}
Copier après la connexion

3. Déplacer des tâches de haut en bas
Une amélioration clé du projet a été la mise en œuvre de la réorganisation des tâches. Les fonctions moveTaskUp et moveTaskDown réorganisent les tâches en fonction de leurs indices :

function moveTaskUp(index) {
  if (index > 0) {
    const updatedTasks = [...tasks];
    [updatedTasks[index], updatedTasks[index - 1]] = [updatedTasks[index - 1], updatedTasks[index]];
    setTasks(updatedTasks);
  }
}

function moveTaskDown(index) {
  if (index < tasks.length - 1) {
    const updatedTasks = [...tasks];
    [updatedTasks[index], updatedTasks[index + 1]] = [updatedTasks[index + 1], updatedTasks[index]];
    setTasks(updatedTasks);
  }
}
Copier après la connexion

4. Ajout de styles avec CSS
Pour rendre l'application visuellement attrayante, j'ai appliqué des styles personnalisés dans index.css. Voici quelques-uns des faits saillants :

Style des boutons :

button {
  font-size: 1.7rem;
  font-weight: bold;
  padding: 10px 20px;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.5s ease;
}
.add-button {
  background-color: hsl(125, 47%, 54%);
}
.add-button:hover {
  background-color: hsl(125, 47%, 44%);
}
Copier après la connexion

Style des éléments de tâche :

li {
  font-size: 2rem;
  font-weight: bold;
  padding: 15px;
  background-color: hsl(0, 0%, 97%);
  margin-bottom: 10px;
  border: 3px solid hsla(0, 0%, 85%, 0.75);
  border-radius: 5px;
  display: flex;
  align-items: center;
}
Copier après la connexion

5. Liste complète des tâches en action
Voici comment tout se déroule dans le composant ToDoList.jsx :

return (
  <div className='to-do-list'>
    <h1>To-Do List</h1>
    <div>
      <input 
        type='text'
        placeholder='Enter a task...'
        value={newTask}
        onChange={handleInputChange}
      />
      <button className='add-button' onClick={addTask}>
        Add
      </button>
    </div>

    <ol>
      {tasks.map((task, index) => (
        <li key={index}>
          <span className='text'>{task}</span>
          <button className='delete-button' onClick={() => deleteTask(index)}>Delete</button>
          <button className='move-button' onClick={() => moveTaskUp(index)}>☝️</button>
          <button className='move-button' onClick={() => moveTaskDown(index)}>?</button>
        </li>
      ))}
    </ol>
  </div>
);
Copier après la connexion

Points clés à retenir

  1. React Hooks : le hook useState est un moyen efficace de gérer les états des composants locaux.
  2. Gestion des événements : des fonctions telles que handleInputChange, addTask et deleteTask montrent comment les interactions des utilisateurs peuvent mettre à jour l'interface utilisateur.
  3. Rendu de liste dynamique : l'utilisation de la carte pour parcourir les tâches rend l'application dynamique et réactive aux changements.
  4. Meilleures pratiques de style : la combinaison d'effets de survol et de transitions CSS améliore l'expérience utilisateur.

Une étape à la fois

Code source
Vous pouvez accéder au code source complet de ce projet sur GitHub :
? Référentiel d'applications React de liste de tâches

N'hésitez pas à explorer, bifurquer et contribuer au projet !

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal