Build this React To-Do List app in 20 minutes! ☝

preview_player
Показать описание
#reactjs #utorial #course

This is a project you can write using React JS with only using the useState hook. Impress your friends or potential employer!

00:00:00 setup
00:03:12 HTML
00:09:26 CSS
00:16:39 JS functions
Рекомендации по теме
Комментарии
Автор

I apologize if my voice sounds strained. I had to record this video 3 separate times because it wouldn't turn out right. My voice REALLY hurts 😂


import ToDoList from './ToDoList.jsx';

function App() {

return (<ToDoList />)
}

export default App

import React, { useState } from 'react'

function ToDoList(){

const [tasks, setTasks] = useState([]);
const [newTask, setNewTask] = useState("");

function handleInputChange(event){

}

function addTask(){
if(newTask.trim() !== ""){
setTasks(t => [...t, newTask]);
setNewTask("");
}
}

function deleteTask(index){
const updatedTasks = tasks.filter((_, i) => i !== index);
setTasks(updatedTasks);
}

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);
}
}

return(
<div className="to-do-list">

<h1>To-Do-List</h1>

<div>
<input
type="text"
placeholder="Enter a task..."
value={newTask}

<button
className="add-button"
onClick={addTask}>
Add
</button>
</div>
<ol>
{tasks.map((task, index) =>
<li key={index}>
<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>);
}
export default ToDoList

body{
background-color: hsl(0, 0%, 10%);
}
.to-do-list{
font-family: Arial, sans-serif;
text-align: center;
margin-top: 100px;
}
h1{
font-size: 4rem;
color: white;
}
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%);
}
.delete-button{
background-color: hsl(10, 90%, 50%);
}
.delete-button:hover{
background-color: hsl(10, 90%, 40%);
}
.move-button{
background-color: hsl(207, 90%, 64%);
}
.move-button:hover{
background-color: hsl(207, 90%, 54%);
}
input[type="text"]{
font-size: 1.6rem;
padding: 10px;
border: 2px solid hsla(0, 0%, 80%, 0.5);
border-radius: 5px;
color: hsla(0, 0%, 0%, 0.5);
}
ol{
padding: 0;
}
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;
}
.text{
flex: 1;
}
.delete-button, .move-button{
padding: 8px 12px;
font-size: 1.4rem;
margin-left: 10px;
}

BroCodez
Автор

I’m not a react beginner but experienced dev who just wanted to go back to good old times and watch some beginner tutorial and I truly loved and enjoyed this video. First time seeing your video and it’s absolutely nice and well explained. Keep up the good work and to the guys who are watching and maybe just starting - don’t give up, study hard and see you at the top!❤️❤️❤️

blaaaabla
Автор

One of the best tutorials on how to do a todolist in react.

valerylouis
Автор

I just watched your entire react course this far and it have been a life saver thank you! You taught me Java, C, HTML, CSS, JS and Python, literally helped carry me through my degree.

michaelschroeder
Автор

Petition for a Svelte course, I am starting to watch a 20 hour long one, since svelte is less troublesome than react it could be possible to have a comprehensive course in maybe 5-8 hours plus I like your style. I will anyways check documentation when I get some time to spare. No pressure though just an idea you'll perhaps like, ❤

abrahamsimonramirez
Автор

Please never stop making this kind of useful video...❤

hasnainmalik
Автор

Hoping that you will upload more videos in react js. I've been watching your videos from HTML, CSS, JS and this react js tutorial your videos are very understandable. I hope this coming 2024 I will be a frontend developer as a stepping stones into full stack developer.

greengoatsht
Автор

Quick and clean but it take time to understand the logic how the up and down function work

x..darkfate..x
Автор

The best todo list app teaching on youtube by React

shaikshahed
Автор

Thank you so much for these useful videos, your voice is calm and your videos are so understandable 🙏

kolya_SAKHA
Автор

wow man this video is absolutely gem for me . i learned so many things from this . thanks a lot

DreamZdsb
Автор

THIS! 👏🏽 TUTORIAL! 👏🏽 IS! 👏🏽 THE DOPEST! 👏🏽 INTRO! 👏🏽 TUTORIAL! 👏🏽 TO! 👏🏽 REACT! 👏🏽 PERIOD! 👏🏽

CarCinCal
Автор

Thanks bro, very helful for my first react app

danielo_tunes
Автор

Awesome video. One of the easier ones to follow that made sense and was short and to the point.
How would you include an option to edit an item on the list?
(Thanks again and keep up the great work)

mediasmithsllc
Автор

I just logged in to Youtube to tell you thank you for this.

rohannaidu
Автор

Hey bro. So happy to see you back in making video on but please make video for Springboot too

deeplife
Автор

can you make a video guide about vuejs, nodejs? We are looking forward to it!!!

aninh
Автор

When an element ends up moving up or down by using the function, we update our new array. Does this mean we also recreate the mapping with the new positioned elements by reinserting them into the unordered list? (Because we also need to take into account that the element which have changed position have take new indexes, so we have to readjust their id, index given to the callback functions, etc.) ?

andromilk
Автор

Thanks bro, can you make a flutter tutorial please? I hope you see this comment

nickinspire
Автор

21:12 I wrote according to the video and it said that error. I attempted to find the cause of error. I read it and I don't understand it. But just putting a single semi-colon (;) end of the line, The error is gone :>

ireqkub