美文网首页
Next.js 入门

Next.js 入门

作者: YQY_苑 | 来源:发表于2020-06-29 21:44 被阅读0次

创建项目

npm init next-app [项目名] 
// 选择 Default starter app
cd next-demo
touch .gitignore
yarn dev
// 浏览器打开控制台给出的网址,创建成功
image.png
image.png

约定大于配置

  • 创建pages/posts/first-post.js
  • 访问路径 /posts/first-post

示例

import React from "react";
import Link from "next/link";

export default function firstPost() {
    return (
        <React.Fragment>
            <div>
                first Post
                <hr/>
                // Link快速导航
                <Link href="/post/first-post"><a>去第一篇文章!</a></Link>
                <h1>看看</h1>
            </div>
            <style jsx>   // 局部样式 styled-jsx
                {`
                    h1{
                        color:yellow;
                    }
                    p{
                      color: black;
                    }
                `}
            </style>
        </React.Fragment>
    )
}

Link快速导航标签式导航文档

使用Link 代替a标签。
原理:Link组件对链接进行劫持,当点击链接时,自动进行请求该链接资源,然后替换当前页面的样式和数据。

优点

  • 页面不会刷新,利用ajax请求新页面内容,然后替换当前页面
  • 不会请求后重复HTML,CSS,JS
  • 自动在页面插入新内容,删除就内容
  • 省略很多请求和解析过程,所以速度极快

全局配置

  • page目录下进行_app.js 文件,export default function App ,是每个页面的根组件
  • 切换页面是App不销毁,App里面的子组件会销毁
  • App可保存全局状态
// page/_app.js
import React from "react";
import Head from "next/head";
import "styles/global.css"  // 全局样式,不会销毁
import png from "static/img/kk.png"

export default function App({Component, pageProps}) {
    return (
        <div className="YQY">
            <Head>
                <title>我的博客 ---  YQY</title>
                <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
            </Head>
            <img src={png} alt=""/>
            <Component {...pageProps}/>
        </div>
    )
}

总结

  • 创建项目
    npm init next-app [项目名]

  • 快速导航

<Link href="/xxx"><a>xxx</a></Link>
  • 同构代码

    • 一份代码,两端运行
  • 全局组件

    • pages/_app.js
  • 自定义head

    • 使用Head组件
  • 全局CSS

<style jsx> 
<style jsx global> 
xxx.module.css

相关文章

网友评论

      本文标题:Next.js 入门

      本文链接:https://www.haomeiwen.com/subject/vxnafktx.html