Next.js 2.0

今天,我們很自豪地向世界介紹Next 2.0。接下來是我們所做的每個新功能和改進(jìn)的快速總結(jié)。

React變得容易和簡單

Next.js是一個非常纖薄而強(qiáng)大的框架。將React組件放在一個pages目錄中并運(yùn)行next,您將得到自動代碼分割,路由,熱代碼重新加載和通用(服務(wù)器端和客戶端)的渲染。

很容易,因?yàn)樗且粋€用于開發(fā)(next)的命令,還有兩個(next build和)用于生產(chǎn)就緒的應(yīng)用程序。 next start

這很簡單,因?yàn)樗M成非常好。它與React和JavaScript(npm)生態(tài)系統(tǒng)的其他部分相互配合。
它也很小。檢查自述文件:整個框架的文檔是一個5分鐘的閱讀。

新!想通過示例逐步學(xué)習(xí)?查看Learn Next.js教程!

程序化API

當(dāng)我們啟動Next.js時,沒有辦法做動態(tài)路由或加載您的自定義服務(wù)器代碼。我們這樣做是因?yàn)槲覀兿嘈盘崆昂徒?jīng)常運(yùn)送。

現(xiàn)在,您可以運(yùn)行node index.js以啟動您自己的自定義服務(wù)器,并完全控制路由和渲染管道。這使強(qiáng)大的功能,如花式URL或自定義緩存方案。

const express = require('express')
const next = require('next')

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

app.prepare().then(() => {
  const server = express()

  server.get('/r/:subreddit', (req, res) => {
    return app.render(req, res, '/b', {
      ...req.query,
      subreddit: req.params.subreddit
    })
  })

  server.get('*', (req, res) => {
    handle(req, res)
  })
  server.listen(3000)
})

使用Express和Next.js實(shí)現(xiàn)Reddit風(fēng)格的花式URL

帶上你自己的React

要開始一個項(xiàng)目,你現(xiàn)在需要引入next和兩個額外的依賴,react react-dom。

$ npm install --save next react react-dom

組件CSS支持

我們的使命是讓Next.js盡可能熟悉Web Platform上的開發(fā)人員。為此,現(xiàn)在不推薦使用Babel轉(zhuǎn)換,這種轉(zhuǎn)換給我們提供了有限的(孤立的)完整的CSS支持。 next/css styled-jsx

這是一個CSS本地,無沖突,服務(wù)器呈現(xiàn)和每個實(shí)例注入一次的組件:

export default () => (
  <div>
    <p>hi there</p>

    <style jsx>{`
      p {
        color: red;
      }
    `}</style>
  </div>
)

樣式p僅適用于在范圍內(nèi)靜態(tài)定義的JSX標(biāo)簽

預(yù)取

我們實(shí)現(xiàn)prefetch了<Link>組件的屬性。

export default () => (
  <div>
    <Link href="/next-page" prefetch>Go to the next page</Link>
  </div>
)

就像這樣,你可以得到一個“SPA”的性能,沒有最初的下載和大捆綁的昂貴的啟動懲罰。與服務(wù)器渲染相結(jié)合,這通常意味著非常低的性能。

Next News

我們認(rèn)為比TodoMVC更好的“Hello World”應(yīng)用程序?qū)嶋H上是...Hacker News!!

我們的實(shí)施“ Next News”完全由服務(wù)器呈現(xiàn),通過Firebase查詢數(shù)據(jù),并在新的投票進(jìn)行時實(shí)時更新。請查看next-news.now.sh上的演示。

image.png

本文翻譯自:https://zeit.co/blog/next2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容