Next.js (上)

2022-02-25  本文已影响0人  kzc爱吃梨

创建项目

命令

Link快速导航

用法

优点

同构代码

代码运行在两端

注意差异

全局配置

pages/_app.js

import '../styles/globals.css'
import Head from 'next/head'

function MyApp({Component, pageProps}) {
  return (
      <>
        <Head>
          {/*公共头部*/}
          <title>我的blog - kong</title>
          <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
        </Head>
        <Component {...pageProps} />
      </>
  )
}

export default MyApp

注意

全局CSS

放在_app.js

import styles from '../styles/Home.module.css'

export default function Home() {
  return (
      // styles module用法
      <div className={styles.container}>
        <h1>标题一</h1>
        <p>段落</p>
        
        <style jsx>{`
          h1 {
            color: red;
          }
        `}</style>
        {/*添加global,影响全局的样式*/}
        <style jsx global>{`
          body {
            background: yellow;
          }
        `}</style>
      </div>
  )
}

插曲

{
  "compilerOptions": {
    "baseUrl": "."
  }
}

局部CSS

官方支持
默认支持 styled-jsxCSS Modules
一般来说,简单需求用前者,复杂需求用后者我的个人偏好

其他类型文件

图片

SVG

const nextConfig = {
  reactStrictMode: true,
  webpack: (config, options)=> {
    config.module.rules.push({
      test: '/\.(png|jpg|svg|jpeg|gif)$/',
      use: [
        {
          loader: 'file-loader',
          options: {
            name: '[name].[contenthash].[ext]',
            outputPath: 'static', // 硬盘路径
            publicPath: '_next/static' // 网站路径
          }
        }
      ]
    })
    return config
  }
}

module.exports = nextConfig

更多

上一篇下一篇

猜你喜欢

热点阅读