1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-loading
Arunoda Susiripala c890dc3573 Implement Router Events (#511)
* Move route loading logic to a common place.

* Add router events.

* Add EventEmitter's core API methods.

* Add example app for loading events and docs.

* Fix some typos.

* Get rid of Router.ready()

* Remove events package.
It's already shipping with webpack.

* Handling aborting properly.

* Expose simple attribute based events listener API.
Removed the proposed event listener API from the public API.

* Remove error logged when there's an abort error.
There are many other ways to capture this error.
So, it doesn't look nice to print this always.

* Change router events to pass only the current URL as arguments.

* Add a section about Cancelled Routes to README.
2016-12-30 17:15:22 -08:00
..
components Implement Router Events (#511) 2016-12-30 17:15:22 -08:00
pages Implement Router Events (#511) 2016-12-30 17:15:22 -08:00
static Implement Router Events (#511) 2016-12-30 17:15:22 -08:00
package.json Implement Router Events (#511) 2016-12-30 17:15:22 -08:00
README.md Implement Router Events (#511) 2016-12-30 17:15:22 -08:00

Example app with page loading indicator

How to use

Download the example (or clone the repo)[https://github.com/zeit/next.js.git]:

curl https://codeload.github.com/zeit/next.js/tar.gz/master | tar -xz --strip=2 next.js-master/examples/with-loading
cd with-loading

Install it and run:

npm install
npm run dev

Deploy it to the cloud with now (download)

now

The idea behind the example

Sometimes when switching between pages, Next.js needs to download pages(chunks) from the server before rendering the page. And it may also need to wait for the data. So while doing these tasks, browser might be non responsive.

We can simply fix this issue by showing a loading indicator. That's what this examples shows.

It features:

  • An app with two pages which uses a common Header component for navigation links.
  • Using next/router to identify different router events
  • Uses nprogress as the loading indicator.