我需要把我的css样式表分成许多文件,每个Next.js页面一个。如何落实这一点?
我试着使用next-css
,并且只在每个页面中导入一个css文件。它几乎工作。但是,在链接导航时不会加载css文件。Next的作者说它还没有实现:https://github.com/zeit/next-plugins/issues/282#issuecomment-523128645
我也试过使用styled-jsx
。这对我来说有几个问题。它的“问题”页面上有许多错误。我也无法使用这种方法使样式在整个子组件中可见。
3条答案
按热度按时间jfgube3f1#
您可以导入
module.css
(import style from 'root/styles/MyStyle.module.css
)并按如下方式使用。这是您的组件:
字符串
这是你的CSS:
型
注意,CSS类用作组件
className
;或者,在react组件中,您可以尝试添加标记
<style jsx>{ your_CSS_here }</style>
。根据Next文档,每个页面都使用styled-jsx库。但是你仍然可以使用其他的CSS-in-JS库,比如Styled Components和Emotion。
Next应用程序还支持使用sass,允许您导入
.css
和.scss
文件。有关更多信息,请查看Vercel Docs。我也建议你检查Learning area。
af7jpaap2#
由于服务器组件的范式转变,我目前面临着Next.js 13的挑战,这使我无法使用CSS-in-JS(如样式组件)。但是,我正在探索CSS模块的使用。我在这里分享这一点,以防有人有类似的疑问。在生产构建中,它们确实是分开的,没有捆绑到一个文件中,这是我的一个问题。此外,Next.js 13中的SCSS支持运行良好,不需要额外的配置,我不确定以前的版本是否如此。我相信,只要有SCSS的支持就是一个很大的优势。
eh57zj3b3#
你可以创建单独的css文件,并且在每个需要特定样式的组件上导入该组件所特有的css文件。例如,假设你在文件
file1.js
中有一个组件,那么你可以在文件file1.css
中导入特定于该组件的样式,对于另一个文件file2
,cssfile2.css
也会发生同样的情况。字符串
第二个文件也是如此
型