一篇搞懂next.js基本操作

Next.js SSR优点

  1. 搭建轻松
  2. 自带数据同步SSR
  3. 丰富插件 自己形成生态
  4. 灵活配置
create-next-app

路由

必须withRouter包裹组件,才能获取{router},只能通过router.query获取参数

生命周期

  • routerChangeStart 路由变化之前触发
  • routeChangeComplete 路由变化完成触发
  • beforeHistoryChange 在改变浏览器history之前触发
  • routeChangeError 路由跳转时发生错误时触发
  • hashChangeStart hash开始跳转时触发
  • hashChangeComplete hash跳转完成时触发

静态方法getInitialProps

xiaojiejie.getInitialProps = async()=> {
  // 请求数据
}

在style jsx中编写css

注意css文件在next.js不支持import引入,而需要在style jsx下编写

function kang(){
  return (
    <>
      <button></button>
      <div className="kang"></div>
      <style jsx>
        {
        `
          .kang{color:red}
        `
        }
      </style>
    </>
  )
}
export default kang

建议看文档,最新版的next和旧版外部引入css不一样

https://www.nextjs.cn/docs/basic-features/built-in-css-support

异步加载模块和组件

  • 异步加载模块 import()函数
  • 异步加载组件 next下的dynamic模块
import React,{useState} from 'react'

import dynamic from 'next/dynamic'
// 异步加载组件 dynamic
const One = dynamic(import('../components/one'))
function Time() {
  const [nowTime,setTime] = useState(Date.now())

  const changeTime = async () => {
    // 异步加载模块 import
    const moment = await import('moment')
    setTime(moment.default(Date.now()).format())
  }
  return (
    <>
      <div>显示时间为:{nowTime}</div>
      <One></One>
      <div>
        <button onClick={changeTime}>改变时间格式</button>
      </div>
      
    </>
  )
}

export default Time

next下的head

import Head from 'next/head'
const MyHeader = () => {
  return (
    <>
      <Head>
        <title>Kangshenglone.top</title>
      </Head>
    </>
  )
}

export default MyHeader

yarn start 和yarn dev的区别

  • yarn dev是在开发环境下运行
  • yarn start是在线上环境运行

在next.js引入antd框架

12.0.7版本下的next.js,在全局_app.js(没有自己创建)引入样式

import 'antd/dist/antd.css'
export default App

  • next的Link只支持一个标签
  • css引入看官方文档
  • 用来hooks函数export抛出名必须大写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影风莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值