nextjs 入门,ssr后台服务器渲染

前期必备知识

熟悉react,nextjs(是一个react的后台渲染框架)

目录

  • 什么是ssr
  • 什么是seo
  • nextjs是什么
  • 如何使用
    • 界面显示+路由跳转

什么是ssr

ssr,服务器端渲染(SSR: Server Side Rendering),react前端做好的界面,后台把界面渲染成html之后,在传给前台,这样子有什么好处。

1.优化seo
2.加快渲染速度,界面显示快一点

什么是seo

SEO(Search Engine Optimization):汉译为搜索引擎优化。是一种方式:利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是:为网站提供生态式的自我营销解决方案,让其在行业内占据领先地位,获得品牌收益;SEO包含站外SEO和站内SEO两方面;为了从搜索引擎中获得更多的免费流量,从网站结构、内容建设方案、用户互动传播、页面等角度进行合理规划,还会使搜索引擎中显示的网站相关信息对用户来说更具有吸引力。
简单的来说就是提高你的网站在百度上的排名

nextjs是什么

react 用来做ssr的框架

如何使用

官网 https://nextjs.org/

下面用几个例子来带你们上道

1.界面显示+路由跳转

//package.json
{
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  }
}

填写路由,路由都写在pages文件夹下面

/pages/index.js
export default () => (
  <div>
    <p>This is the index page</p>
  </div>
)

/pages/about.js
import Router from 'next/router'
export default () => (
  <div>
    <p>This is the about page</p>
    <button onClick={()=>{Router.push("/index")}} ></button >
  </div>
)

router就可以跳转界面啦

Router.push("/index")

以上是最简单的路由跳转+界面显示

2.后台控制路由

上篇对vue的Nuxt.js没有说到express
那么这篇react的nextjs我们来说一说sever.js如何配置

//server.js
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3888
const dev = process.env.NODE_ENV !== 'production'
console.log(process.env.NODE_ENV)
console.log({dev})
const app = next({dev})
const handle = app.getRequestHandler()
app.prepare()
    .then(() => {
        const server = express()
   
        /*路由控制*/
        server.get('/setting/design', (req, res) => {
            return app.render(req, res, '/settingDesignList', req.query)
        })
        server.get('/', (req, res) => {
            return app.render(req, res, '/index', req.query)
        })
        server.get('*', (req, res) => {
            return handle(req, res)
        })

        server.listen(port, (err) => {
            if (err) throw err
            console.log(`> Ready on http://localhost:${port}`)
        })
    })

修改package.json

//package.json
  "scripts": {
    "dev": "cross-env  NODE_ENV=development  node server.js",
    "build": "cross-env  NODE_ENV=production  next build",
    "start": "cross-env NODE_ENV=production  node server.js"
  },

使用server.js的好处,控制路由url,比如/setting/design我们就能控制到pages下面的settingDesignList.js中
那么demo就放到我的github上:https://gitee.com/lazytai/next-with-antd

好了就到这里吧,下一篇要见es6还有babel,请期待哦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Next.js 是一个轻量级的 React 服务端渲染应用框架。 Next.js中文站点 http://nextj...
    前端妹子ice阅读 72,719评论 6 19
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,159评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,090评论 2 59
  • 胡钧阅读 204评论 0 0
  • 1秋梦回来 蹭车 我也得回来 2.张惠过生日 蹭车 红包 3.家得搬 4.全身心的投资大脑 脑风波
    AABM阅读 129评论 0 0