Next.js 初试

2019-06-21  本文已影响0人  广州芦苇科技web前端

title: next.js入门
tag:next.js, react


序章

服务端渲染

优点
缺点

SEO

安装

yarn next react react-dom --save
{
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  }
}

目录结构

默认情况下:

编写Hello World页面

// ./page/index.js

var num = 1
num ++ 
console.log(num)

function click () {
  console.log(num++)
}

export default () => (
  <div onClick={click}>Hello Next.js</div>
)

开发

yarn dev 
yarn dev -p 8080 // 指定端口号

获取数据和组件生命周期

getInitialProps


import {Component} from 'react'

export default class App extends Component {
  static async getInitialProps(obj) {
    console.log(obj)
    console.log('where called')
    var fetch = (url) => {
      return new Promise((res, rej) => {
        res('获取数据然后渲染')
      })
    }

    let response = await fetch('/static/demo.json')
    console.log(response)
    return {response}
  }

  state = {
    num: 1
  }

  add = () => {
    this.setState((state) => {
      return state.num++
    })
  }

  render () {
    return (
      <div>
        <div>{this.props.response}</div>
        <div>{this.state.num}</div>
        <button onClick={this.add}>++</button>
      </div>
    )
  }
}
<div>获取数据然后渲染</div><div>1</div><button>++</button></div></div>

兼容性

Next.js 支持 IE11 和所有的现代浏览器使用了@babel/preset-env。为了支持 IE11,Next.js 需要全局添加Promise的 polyfill。有时你的代码或引入的其他 NPM 包的部分功能现代浏览器不支持,则需要用 polyfills 去实现。

原文链接

【完】 喜欢的欢迎 star && issue

思考ing
作者简介:叶茂,芦苇科技web前端开发工程师,代表作品:口红挑战网红小游戏、服务端渲染官网、微信小程序粒子系统。擅长网站建设、公众号开发、微信小程序开发、小游戏、公众号开发,专注于前端领域框架、交互设计、图像绘制、数据分析等研究。 一起并肩作战: yemao@talkmoney.cn 访问 www.talkmoney.cn 了解更多
上一篇 下一篇

猜你喜欢

热点阅读