Book Image

Full-Stack React, TypeScript, and Node

By : David Choi
2 (1)
Book Image

Full-Stack React, TypeScript, and Node

2 (1)
By: David Choi

Overview of this book

React sets the standard for building high-performance client-side web apps. Node.js is a scalable application server that is used in thousands of websites, while GraphQL is becoming the standard way for large websites to provide data and services to their users. Together, these technologies, when reinforced with the capabilities of TypeScript, provide a cutting-edge stack for complete web application development. This book takes a hands-on approach to implementing modern web technologies and the associated methodologies for building full-stack apps. You’ll begin by gaining a strong understanding of TypeScript and how to use it to build high-quality web apps. The chapters that follow delve into client-side development with React using the new Hooks API and Redux. Next, you’ll get to grips with server-side development with Express, including authentication with Redis-based sessions and accessing databases with TypeORM. The book will then show you how to use Apollo GraphQL to build web services for your full-stack app. Later, you’ll learn how to build GraphQL schemas and integrate them with React using Hooks. Finally, you’ll focus on how to deploy your application onto an NGINX server using the AWS cloud. By the end of this book, you’ll be able to build and deploy complete high-performance web applications using React, Node, and GraphQL.
Table of Contents (22 chapters)
Section 1:Understanding TypeScript and How It Can Improve Your JavaScript
Section 2: Learning Single-Page Application Development Using React
Section 3: Understanding Web Service Development Using Express and GraphQL
Chapter 16: Adding a GraphQL Schema – Part II

What this book covers

Chapter 1, Understanding TypeScript, explains what TypeScript is and what makes it ideal for use in large application development.

Chapter 2, Exploring TypeScript, dives deep into TypeScript. We'll explore its features, including static typing, and why these features are an improvement over JavaScript. We'll also look at application design with object-oriented programming and how TypeScript features enable this important programming paradigm.

Chapter 3, Building Better Apps with ES6+ Features, reviews the important features of JavaScript that every developer needs to know. We'll focus on the latest features added in ES6 and beyond.

Chapter 4, Learning Single-Page Application Concepts and How React Enables Them, explains how websites are built and focuses on single-page application-style apps. We'll then introduce React and how React is used to create a single-page application.

Chapter 5, React Development with Hooks, dives deep into React. We'll learn about the limitations of the older class style of writing React applications, as well as learn about Hooks and functional components and how they are an improvement on the older class style.

Chapter 6, Setting Up Our Project Using create-react-app and Testing with Jest, describes the modern methods used for developing React applications. This includes the standard for creating React projects, create-react-app, and client-side testing with Jest and testing-library.

Chapter 7, Learning Redux and React Router, covers Redux and React Router to help us build our React application. These two frameworks have been the go-to frameworks for managing state and routing almost since React's inception.

Chapter 8, Learning Server-Side Development with Node.js and Express, covers Node and Express. Node is the underlying runtime that makes JavaScript server apps possible. Express is the framework around Node that makes it easy to build powerful server-side apps using Node.

Chapter 9, What is GraphQL?, reviews what GraphQL is and how it uses data schemas to help build a web API.

Chapter 10, Setting Up an Express Project with TypeScript and GraphQL Dependencies, explains how to create a production quality, server-side project using TypeScript, Express, GraphQL, and Jest for testing.

Chapter 11, What We Will Learn – Online Forum Application, discusses the application we will be building. We will review its features and how building such an app will help us learn about web development in more detail.

Chapter 12, Building the React Client for Our Online Forum Application, explains how to start coding the client side of our application with React. We will use functional components, Hooks, and Redux to begin building our screens.

Chapter 13, Setting Up Session State Using Express and Redis, explores what session state is and how to create a session for our server using Redis, the world's most powerful in-memory datastore. We also begin coding our server using Express.

Chapter 14, Setting Up Postgres and Repository Layer with TypeORM, explains how to create a database for our application in Postgres and how to access it using a powerful design technique called Repository Layer.

Chapter 15, Adding a GraphQL Schema – Part I, begins the integration of GraphQL into our application. We will build our schema and add our queries and mutations. We will also begin adding our GraphQL Hooks to our React frontend.

Chapter 16, Adding a GraphQL Schema – Part II, completes our application by finishing the work of integrating GraphQL into both our client and server.

Chapter 17, Deploying an Application to AWS, takes our finished application and deploys it to AWS cloud services. We will use Ubuntu Linux and NGINX to host our server and client code.