Book Image

Isomorphic JavaScript Web Development

By : Tomas Alabes, Konstantin Tarkus
Book Image

Isomorphic JavaScript Web Development

By: Tomas Alabes, Konstantin Tarkus

Overview of this book

<p>The latest trend in web development, Isomorphic JavaScript, allows developers to overcome some of the shortcomings of single-page applications by running the same code on the server as well as on the client. Leading this trend is React, which, when coupled with Node, allows developers to build JavaScript apps that are much faster and more SEO-friendly than single-page applications.</p> <p>This book begins by showing you how to develop frontend components in React. It will then show you how to bind these components to back-end web services that leverage the power of Node. You'll see how web services can be used with React code to offload and maintain the application logic. By the end of this book, you will be able to save a significant amount of development time by learning to combine React and Node to code fast, scalable apps in pure JavaScript.</p>
Table of Contents (16 chapters)
Title Page
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Getting started with Hot Module Replacement


HMR is an opt-in feature, meaning that you must explicitly specify what exactly should happen when new versions of modules are becoming available at runtime in the code.

Try to start the app by running npm start and edit the components/Layout/Layout.js file; you should see the following output in the browser's console window:

[HMR] bundle rebuilding 
[HMR] bundle rebuilt in 445ms 
[HMR] Checking for updates on the server... 
[HMR] The following modules couldn't be hot updated: 
      (Full reload needed) 
[HMR]  - ./components/Layout/Layout.js 

That's the expected behavior because, at this moment, the code doesn't provide instructions to HMR on what to do with the new ./components/Layout/Layout.js module. When this module is loaded into the active runtime, HMR first checks whether this module contains a call to the module.hot.accept(...) method, and if it does, tries to execute it. If this method is not found, HRM traverses the dependency tree from...