/react-website-basic-example

`react-website` basic example

Primary LanguageJavaScriptMIT LicenseMIT

A basic example of using react-website.

Development

npm install
npm start

Then go to http://localhost:1234.

Production

See the dist directory for the output files. The output files can be uploaded to the cloud (e.g. Amazon S3) and hosted for a very low price as a "static" website by mapping any URL to index.html.

Explanation

This sample project illustrates the use of react-website library for building a React/Redux application.

Parceljs is used for bundling the app because it's much simpler for beginners than Webpack.

The "Basic" page shows the "conventional" (old-fashioned) way of writing React/Redux applications.

The "Advanced" page shows the more convenient way of writing React/Redux applications.

The counters on both pages operate identically the only difference being that the counter on the "Basic" page is implemented the "conventional" (old-fashioned) way and the counter on the "Advanced" page is implemented using the "redux module" utility from react-website library.

react-website library packs a lot of utilities not showcased here for sake of simplicity, such as @preload()ing pages, making http requests, setting <meta/> tags, programmatic navigation, and more...

Windows

npm start freezes on Windows on Building ... when you try to run it. If you're persistent with Ctrl + C and running it again and again then it can suddenly start working after, say, 50 tries. It still can break and stop watching, etc. A workaround for this freezing bug is to open ./node_modules/parcel-bundler/src/WorkerFarm.js file and add a maxConcurrentCallsPerWorker option to it:

class WorkerFarm extends Farm {
  constructor(options) {
    let opts = {
      maxConcurrentWorkers: getNumWorkers(),
      maxConcurrentCallsPerWorker: 5
    };

It might output a warning Cannot statically evaluate fs argument but it can be ignored.