• Stars
    star
    363
  • Rank 117,374 (Top 3 %)
  • Language
    JavaScript
  • Created over 7 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This repository contains all the material for the HackYourFuture module "React.js: Building dynamic UIs with modern JavaScript"

If you are following the HackYourFuture curriculum we recommend you to start with module 1: HTML/CSS/GIT. To get a complete overview of the HackYourFuture curriculum first, click here.

Please help us improve and share your feedback! If you find better tutorials or links, please share them by opening a pull request.

Module #7 - React.js: Building dynamic UIs with modern JavaScript (Frontend)

React Module

Welcome to the React module! Congratulations on making it this far!

In these 4 weeks we will go back to the frontend and learn how to make faster, more modern user interfaces. In the HTML and JavaScript modules you've learned all about creating webpages that that hold unchanging data. No matter who is using the website, the data will always be the same. We call this a static website. At the same time you've build various HTML pages so the user is able to access various parts of the website. We call this a multi-page application (MPA)

In the Node.js module you've learned about how to change the content of the page, based on the user's input, using a templating engine. Type in a keyword and the server sends back a template with customized data. We call this a dynamic website. However, we did it in such a way were we still had to send different pages to the client depending on the URL (for example, / or /users). This is also an MPA.

In this module, however, you'll learn how to make more complex websites. Though, we won't be calling them websites anymore: they'll be web applications. They're not just informational, but allow the user to interact with it. This similar to any application on your desktop. These React applications will also deal with dynamic data: its state changes depending on who's using it.

Besides being dynamic, React applications also are single page applications (SPA). Essentially, this means that on loading the whole application (every page and its contents) is accessible to the user, without the need to send requests to the server to get another page.

Before you start

In order to properly work through this module smoothly we're going to use software that will allow us to write React applications with ease. It's called create-react-app.

Go to your command line and execute the following:

npm install -g create-react-app

Now verify that you have it by executing the following:

create-react-app --version

It should be at least version 2.1.x.

Learning goals

In order to successfully complete this module you will need to master the following:

  • Understand the React way of thinking about user interfaces
  • Know the importance and place of state and how to pass it down
  • Be able to work with different hooks and even create your own
  • Recognize the utility of modularization
  • Putting emphasis on writing reusable code (components)
  • How to handle client-side routing

How to use this repository

Repository content

This repository consists of 3 essential parts:

  1. README: this document contains all the required theory you need to understand while working on the homework. It contains not only the right resources to learn about the concepts, but also lectures done by HackYourFuture teachers. This is the first thing you should start with every week
  2. MAKEME: this document contains the instructions for each week's homework. Start with the exercises rather quickly, so that you can ground the concepts you read about earlier.
  3. LESSONPLAN: this document is meant for teachers as a reference. However, as a student don't be shy to take a look at it as well!

How to study

Let's say you are just starting out with the Databases module. This is what you do...

  1. The week always starts on Wednesday. First thing you'll do is open the README.md for that week. For the first week of Databases, that would be Week1 Reading
  2. You spend Wednesday and Thursday going over the resources and try to get a basic understanding of the concepts. In the meanwhile, you'll also implement any feedback you got on last week's homework (from the Node.js module)
  3. On Friday you start with the homework, found in the MAKEME.md. For the first week of React, that would be Week1 Homework
  4. You spend Friday and Saturday playing around with the exercises and write down any questions you might have
  5. DEADLINE 1: You'll submit any questions you might have before Saturday 23.59, in the class channel
  6. On Sunday you'll attend class. It'll be of the Q&A format, meaning that there will be no new material. Instead your questions shall be discussed and you can learn from others
  7. You spend Monday and Tuesday finalizing your homework
  8. DEADLINE 2: You submit your homework to the right channels (GitHub) before Tuesday 23.59. If you can't make it on time, please communicate it with your mentor
  9. Start the new week by going back to point 1!

In summary:

Weekflow

To have a more detailed overview of the guidelines, please read this document or ask your mentor/class on Slack!

Planning

Week Topics Reading Materials Homework
1. What is React, JSX, State & Props, Deploy a static site Readings W1 Homework W1
2. API calls, Testing Readings W2 Homework W2
3. Client-side routing, Context, Custom hooks Readings W3 Homework W3
4. Project! Readings W4

Finished?

Did you finish the module? Impressive!

If you feel ready for the final challenge, click here to go to Project!

The HackYourFuture curriculum is subject to CC BY copyright. This means you can freely use our materials, but just make sure to give us credit for it :)

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

More Repositories

1

curriculum

Dive into our 7-month web development program covering HTML, CSS, Javascript, Node, and React!
688
star
2

Node.js

This repository contains all the material for the HackYourFuture module "Understand backend: creating web servers with JavaScript using Node.js"
JavaScript
71
star
3

HTML-CSS

HTML
69
star
4

JavaScript1

This repository contains all the material for the HackYourFuture module "JavaScript 1: Programming Basics"
JavaScript
60
star
5

fundamentals

JavaScript fundamentals and resources
JavaScript
45
star
6

databases

This repository contains all the material for the HackYourFuture module "Databases: Store and retrieve data with MySQL"
JavaScript
45
star
7

yourpersonalbrand

Create a personal brand that gets you hired. This repo includes tips on how to create a great CV and improve your Linkedin and GitHub profiles.
39
star
8

interviewpreparation

Go through the different types of interviews and get tips and tricks to be as prepared as you possibly can!
32
star
9

explore

The starting module that all applicants take to get acquainted with coding and HackYourFuture!
25
star
10

startacodeschool

24
star
11

post-grad-ed

Improve your coding skills mentored by a professional developer and solve real technical assignment from real companies!
HTML
23
star
12

mentors

The guide on how to mentor at HackYourFuture
22
star
13

teaching_tips_tricks

21
star
14

Git

This repository contains the course material for the Git course
20
star
15

JavaScript

This repository contains all the material for the HackYourFuture JavaScript module
JavaScript
18
star
16

JavaScript2

This repository contains all the material for the HackYourFuture module "JavaScript 2: DOM Manipulation"
JavaScript
18
star
17

QA-Training

In this repository you'll find all the study materials and exercises you need to make a great start for a role in Quality Assurance!
15
star
18

JavaScript3

This repository contains all the material for the HackYourFuture module "JavaScript 3: Object-Oriented Programming and working with APIs"
JavaScript
13
star
19

CommandLine

This repository contains the teaching material and notes for the UNIX-based (bash) command line.
10
star
20

UsingAPIs

This repository contains all the material for the HackYourFuture Using API's module
JavaScript
9
star
21

Assignments

This repository contains all of the homework exercises that need to be handed in for the HackYourFuture curriculum.
TypeScript
9
star
22

DataStructures

Algorithms and Data structures course
JavaScript
7
star
23

Project

This repository contains all the material for the HackYourFuture module "Project: Build an application with a team"
6
star
24

hyfer

JavaScript
5
star
25

presentation-module

Delivering a good presentation is something you can learn! This ‘mini-module’ will help you practice your presentation skills with your classmates.
4
star
26

Browsers

This repository contains all the material for the HackYourFuture Browsers module
JavaScript
4
star
27

masterclass-react-redux

Repository for the Masterclass React/Redux
JavaScript
3
star
28

angular

Angular
3
star
29

infrastructure

HackYourFuture Infrastructure
HCL
3
star
30

AngularJS

Class material from angularJS module
HTML
2
star
31

debugging

setup repo for debugging assignments that will be added to the js repo
JavaScript
2
star
32

Fellowship

Tips and Tricks for graduates and mentors starting a Fellowship group
2
star
33

RobotApp

JavaScript
2
star
34

CLI-Git

1
star
35

browser-quiz-project-starter

Starter repository for the browser quiz project
JavaScript
1
star
36

design_guidelines

In this guide we will provide you with some basic design theory and plenty of practical examples you can apply to your projects to ensure your applications and technical assignments look great.
1
star
37

hyf_projects

Build your personal portfolio and prove that you are a Proactive Developer
1
star
38

rover-levels

Levels for the Rover game
JavaScript
1
star
39

hyf-db-pop

HackYourFuture Database Populator
PLpgSQL
1
star
40

final-project-template

JavaScript
1
star