Bygg en Enkel Todo-Applikasjon med React

Bygg en enkel todo-applikasjon med React. Lær å bruke komponenter, state, og props for å lage en funksjonell liste der du kan legge til, fullføre og slette oppgaver.

#utviklere

Publisert 26/05/2024

Blog Post Image

I denne veiledningen skal vi bygge en enkel todo-applikasjon med React. Vi vil gå gjennom de grunnleggende konseptene i React, inkludert komponenter, state, og props. Dette er en flott måte å lære React på hvis du er nybegynner, eller for å friske opp ferdighetene dine.

Steg 1: Opprett et nytt React-prosjekt

Først må vi opprette et nytt React-prosjekt ved hjelp av Create React App:

npx create-react-app todo-app
cd todo-app
npm start

Dette vil opprette et nytt React-prosjekt og starte en utviklingsserver på http://localhost:3000.

Steg 2: Lag Todo-komponenten

Opprett en ny fil kalt Todo.js i src-mappen og legg til følgende kode:

// src/Todo.js
import React, { useState } from 'react';

function Todo({ todo, index, completeTodo, removeTodo }) {
  return (
    <div
      style={{ textDecoration: todo.isCompleted ? 'line-through' : '' }}
      className="todo"
    >
      {todo.text}
      <div>
        <button onClick={() => completeTodo(index)}>Complete</button>
        <button onClick={() => removeTodo(index)}>Delete</button>
      </div>
    </div>
  );
}

function TodoForm({ addTodo }) {
  const [value, setValue] = useState('');

  const handleSubmit = e => {
    e.preventDefault();
    if (!value) return;
    addTodo(value);
    setValue('');
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        className="input"
        value={value}
        onChange={e => setValue(e.target.value)}
      />
    </form>
  );
}

export default function App() {
  const [todos, setTodos] = useState([
    {
      text: 'Learn about React',
      isCompleted: false,
    },
    {
      text: 'Meet friend for lunch',
      isCompleted: false,
    },
    {
      text: 'Build really cool todo app',
      isCompleted: false,
    },
  ]);

  const addTodo = text => {
    const newTodos = [...todos, { text }];
    setTodos(newTodos);
  };

  const completeTodo = index => {
    const newTodos = [...todos];
    newTodos[index].isCompleted = true;
    setTodos(newTodos);
  };

  const removeTodo = index => {
    const newTodos = [...todos];
    newTodos.splice(index, 1);
    setTodos(newTodos);
  };

  return (
    <div className="app">
      <div className="todo-list">
        {todos.map((todo, index) => (
          <Todo
            key={index}
            index={index}
            todo={todo}
            completeTodo={completeTodo}
            removeTodo={removeTodo}
          />
        ))}
        <TodoForm addTodo={addTodo} />
      </div>
    </div>
  );
}

Steg 3: Legg til CSS for Todo-applikasjonen

Opprett en ny fil kalt App.css i src-mappen og legg til følgende CSS for å style todo-applikasjonen:

/* src/App.css */
.app {
  text-align: center;
}

.todo-list {
  max-width: 300px;
  margin: 0 auto;
}

.todo {
  background: #eee;
  margin: 10px;
  padding: 10px;
  border-radius: 4px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.todo button {
  margin-left: 5px;
}

.input {
  padding: 10px;
  margin: 20px 0;
  border: none;
  border-radius: 4px;
  width: 100%;
  box-sizing: border-box;
}

Steg 4: Importer CSS i index.js

Sørg for å importere CSS-filen i index.js:

// src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import './App.css';
import App from './Todo';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

Steg 5: Kjør applikasjonen

Nå kan du kjøre applikasjonen ved å kjøre følgende kommando:

npm start

Dette vil starte utviklingsserveren og åpne nettleseren din på http://localhost:3000, hvor du vil se todo-applikasjonen i aksjon.

Konklusjon

Vi har nå bygget en enkel todo-applikasjon med React. Denne applikasjonen dekker grunnleggende konsepter som komponenter, state, og props, og gir en god introduksjon til React for nybegynnere. Prøv å legge til flere funksjoner, som redigering av todoer eller lagring av todoer i lokal lagring, for å forbedre ferdighetene dine ytterligere.

La oss skape en opplevelse som er like enestående som virksomheten din.

Ta kontakt

Info

  • Orgnr: 931836536

  • hei@aretestudio.no

  • +47 929 50 049