Giter Club home page Giter Club logo

react-tutorial-mern's Introduction

React Tutorial using MERN stack

Build a complete React app, step-by-step with the MERN stack

Introduction

This is a tutorial to get started with React, using the MERN stack. You will not only learn React, but also associated environment and complimentary tools such as Mongo, Express, gulp etc.

In the unlikely event that you landed here first, the complete step-by-step instructions are available here on Hashnode. Read and follow the tutorial there.

1. Hello World

1.1 index.html as a file

Create index.html as a file, use all scripts (react, react-dom, babel) from CDN. Write a Hello World element within the HTML between <script> tags.

1.2 Serve it up

Use Node and Express to serve the HTML file.

2. Organize

Transform the JSX into JS at build-time rather than at run-time.

2.1 Split HTML and JSX

Split JSX and HTML into separate files.

2.2 Manual transform

Serve a transformed JSX rather than the JSX itself.

3. Compose Components

Start building a simple CRUD app.

3.1 Use React.createClass

Use React.createClass to create a class and render it instead of rendering a DOM element directly in ReactDOM.render().

3.2 Compose

Create a component by using other components.

3.3 Communicate

Communicate between components using props

3.4 Dynamic composition

Create multiple components dynamically based on data

4. Dynamic Updates

Dynamically update the data model and re-render.

4.1 Create initial state

Start using state, prepare for dynamic updates.

4.2 Update state

Dynamically update the state and see the magic.

4.3

Communicate from child to a parent component.

5. Data on server

Move data to the server.

5.1 GET API

Implement a GET API on the server to return a list of records.

5.2 POST API

Implement a POST API to add a new record.

5.3 Use the GET API

Change client code to fetch data from server.

5.4 Use the POST API

Change client code to send data to server for Add record.

6. Save to database

Persist the data in a database.

6.1 Initialize

Write a script to initialize a MongoDB collection.

6.2 Connect and Read

Create a permanent connection to the DB, change GET API to read from DB.

6.3 Write to DB

Change POST API to insert a record into the DB.

7. Build and Bundle

Modularize, use browserify to serve a bundle of all scripts.

7.1 browserify

Use browserify to create a bundle manually.

7.2 Automate with gulp

Use gulp to automate the manual tasks.

7.3 Watchify

Use watchify to watch the source file for changes and auto-build.

7.4 Error handling

Log errors in the source file while watching.

7.5 Modularize

Split the single source file into multiple.

8. Filtering

8.1 Modify GET API

Modify GET API to handle a query string with filters.

8.2 Hardcoded filter

Create a button that filters the list, using a hardcoded filter.

8.3 Filter form

Create a form with controlled components and use state.

9. Routing

Use routing to handle different page views and query string.

9.1 React Router

Install React Router and build the first few routes.

9.2 URL parameters

Use URL parameters to initialize the filter.

9.3 Filter change

Propagate a filter change to the bug list and the URL.

9.4 Component Lifecycle

Listen to URL changes, reload the records and re-render the filter UI.

10. Edit page

Add a new view / page that let's us edit a record.

10.1 GET record API

Add a GET API to get a single record.

10.2 PUT API

Add a PUT API to modify a single record.

10.3 New route and page

Create a new route and a new page for editing a record.

10.4 Links

Create links from and to the two pages.

11. React-Bootstrap

Use React-Bootstrap to polish the UI.

11.1 Get started

Install and add a simple button.

11.2 Filter

Convert the filter to React-Bootstrap.

11.3 Add Form

Convert the Add form to React-Bootstrap.

11.4 Table

Convert the Table to React-Bootstrap.

11.5 Edit form

Convert the Edit form to React-Bootstrap.

react-tutorial-mern's People

Contributors

vasansr avatar

Watchers

James Cloos avatar Gathika Ratnayaka avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.