What
is Next.js?
The Next.js is a lightweight JavaScript framework and it is created by Zeit.
The Next.js framework allows us to write
server-rendered React apps easily –
amongst other cool things.
The Next.js
feels like a framework.
The Next.js is based on React, Webpack, and Babel.
The ease-of-use of PHP is a great inspiration. We feel Next.js is a suitable replacement for many scenarios where you
otherwise would use PHP to output HTML.
Unlike PHP,
we benefit from the ES6 module
system and every file exports a component or function that can be easily
imported for lazy evaluation or testing.
Why
Next.js?
Now the world’s leading companies use and love
Next.js.
1. Server-Side
Rendering
2. Zero
Setup
3. Fully
Extensible
4. Ready
for Production
5. Deploy
Anywhere
That's
exactly what we do with Next.js?
What
is Next.js Features?
The List of Next.js features -
1. Server-rendered
by default
2. Automatic
code splitting for faster page loads
3. Simple
client-side routing (page based)
4. Webpack-based
dev environment which supports Hot Module Replacement (HMR)
5. Able
to implement with Express or any other Node.js HTTP server
6. Customizable
with your own Babel and Webpack configurations
7. Built-in
CSS vendor prefixing
8. Dynamic
styles and themes support
9. CSS
Preprocessing via Plugins
10. Full
CSS support, no tradeoffs in power
11. Runtime
size of just 3kb (gzipped, from 12kb)
12. Source
maps support
How
Next.js can improve developer’s life?
1. Ease
of use
2. Code
splitting
3. Performance
for the first-page load
4. Improved
SEO
5. JavaScript
everything
How
to use Next.js?
Setup
Install it: npm install --save next react react-doms
And add a script to your “package.json” like this:
{
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start"
}
}
After that, the file-system is the main API.
Every .js file becomes a route that gets automatically processed and rendered.
Populate ./pages/index.js inside your project:
function Home() {
return <div>Welcome You, in Next.js!</div>
}
export default Home
And then just run npm run dev and go to http://localhost:3000. To use another
port, you can run npm run dev -- -p <your port here>.
Is
next.js is free open source?
Yes!
Is
this production ready?
Yes!
Can
I use it with GraphQL?
Yes!
Can
I use it with Redux and thunk?
Yes!
Can
I use it with Redux?
Yes!
Can
I use Next.js with my favorite JavaScript library or toolkit?
Yes! why not.
How
big is it?
A small Next main bundle is around 65kb gzipped.
How
do I use CSS-in-JS solutions?
You can use any CSS-in-JS solution in your and
bundles styled-jsx supporting scoped css.
Why
a new Router?
Routes don’t need to be known ahead of time.
Routes are always lazy-loadable.
Top-level components can define “getInitialProps”
that should block the loading of the route (either when server-rendering or
lazy-loading).
How
do I fetch data?
It’s up to you. “getInitialProps” is an async
function (or a regular function that returns a Promise). It can retrieve data
from anywhere.
What
Is Automatic code splitting?
Every import you declare gets bundled and served
with each page. That means pages never load unnecessary code!
import cowsay from 'cowsay-browser'
function CowsayHi() {
return <pre>{cowsay.say({ text: 'hi there!' })}</pre>
}
export default CowsayHi
Next.js
vs gatsby?
The Gatsby, while CRA offers client-side
rendering and Next.js offers server-side rending, Gatsby is something called
“Static Site Generator”. ... Similar to Next.js browser receives pre-rendered
HTML code.
At
first glance, they both seem very similar.
1. Generate
very performing websites.
2. Creates
SPA out-of-the-box.
3. Creates
good SEO out-of-the-box
4. Have
an awesome developer experience.
Explore this Reference link...