README.md 1.6 KB
Newer Older
1
[![Deploy to now](https://deploy.now.sh/static/button.svg)](https://deploy.now.sh/?repo=https://github.com/zeit/next.js/tree/master/examples/with-loading)
2 3 4 5
# Example app with page loading indicator

## How to use

6 7
### Using `create-next-app`

8
Execute [`create-next-app`](https://github.com/segmentio/create-next-app) with [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) or [npx](https://github.com/zkat/npx#readme) to bootstrap the example:
9

10 11 12 13
```bash
npx create-next-app --example with-loading with-loading-app
# or
yarn create next-app --example with-loading with-loading-app
14 15 16 17
```

### Download manually

S
Sébastien Dubois 已提交
18
Download the example [or clone the repo](https://github.com/zeit/next.js):
19 20

```bash
21
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-loading
22 23 24 25 26 27 28 29
cd with-loading
```

Install it and run:

```bash
npm install
npm run dev
30 31 32
# or
yarn
yarn dev
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
```

Deploy it to the cloud with [now](https://zeit.co/now) ([download](https://zeit.co/download))

```bash
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](./components/Header.js) component for navigation links.
* Using `next/router` to identify different router events
* Uses [nprogress](https://github.com/rstacruz/nprogress) as the loading indicator.