美文网首页
next使用antd

next使用antd

作者: 月肃生 | 来源:发表于2018-12-05 14:51 被阅读11次

    正常使用是没有问题的,但是样式加载不了,试了很久,antd的按需加载根本没用,可能配置有问题。最后只有两种简单的实现方法。

    1. head中引入 antd.css

    pages目录中新建文件_document.js

    /**
     * 2018-12-04
     * author: 李坤
     */
    import React from 'react'
    import Document, { Head, Main, NextScript } from 'next/document'
    
    export default class MyDocument extends Document {
      static async getInitialProps(ctx) {
        const initialProps = await Document.getInitialProps(ctx)
        return { ...initialProps }
      }
    
      render() {
        return (
          <html>
            <Head>
              <style>{`body { margin: 0 } /* custom! */`}</style>
              <link href="/static/antd.css" rel="stylesheet" /> {/* 地址是自己下载的antd.css,当然也可以使用cdn的地址 */}
            </Head>
            <body className="custom_class">
              <Main />
              <NextScript />
            </body>
          </html>
        )
      }
    }
    

    2. 在less中import

    在自己写的less文件中@import

    @import "~antd/dist/antd.less";
    

    next.config.js

    const withLess = require("@zeit/next-less")
    
    module.exports = withLess({
      cssModules: false,
      cssLoaderOptions: {
        importLoaders: 1,
        localIdentName: '[local]--[hash:base64:5]'
      },
      webpack(config, { dev }) {
        return config;
      }
    })
    

    优缺点对比

    1. 第一种方式
      1)antd.css的版本必须和当前的antd版本一致,不然可能会出问题,建议锁定antd版本。
    2. 第二种方式
      1)可以通过覆盖样式更换主题,(modifyVars不起作用,不太清楚withLess的实现)
      2)不能使用css模块化,因为@import的文件也会被模块化,会出问题。
      3)版本问题不需要考虑

    相关文章

      网友评论

          本文标题:next使用antd

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