首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack的组块样式和react.lazy

问Webpack的组块样式和react.lazy
EN

Stack Overflow用户
提问于 2020-03-11 16:40:23
回答 1查看 613关注 0票数 0

我正面临着与风格顺序相关的问题。在我的例子中,我有一个应用程序,我使用的是React.lazy,它会将我们的应用程序( JS和CSS )分成小块(以提高初始加载性能)。当我们访问第一个页面时,问题来了(所以我们将获取与该页面相关的JS + CSS ),然后我们将转到另一个页面(也将JS + CSS获取到相关页面)。在第二个页面上,我们覆盖了第一个页面上使用的一些样式。然后我们将返回到第一个页面(我们不会将CSS和JS重新获取到相关页面,因为我们将其放在缓存中),问题就来了,因为覆盖样式会导致第一个页面崩溃。有没有办法解决这个问题?如果来自第二个页面的样式不会直接覆盖组件的CSS类,那么问题就不会出现:(

EN

回答 1

Stack Overflow用户

发布于 2020-03-11 20:26:29

使用样式加载器,您可以将一些css文件标记为惰性,并在挂载路由时调用.use(),在卸载路由时调用.unuse()。

代码语言:javascript
复制
import styles from './styles.lazy.css';

export function LegacyRoute() {
  useLayoutEffect(() => {
    styles.use();
    return () => { styles.unuse() };
  }, []);
  return <p>Hello World</p>;
}

webpack配置:

代码语言:javascript
复制
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        exclude: /\.lazy\.css$/i,
        use: ['style-loader', 'css-loader'],
      },
      {
        test: /\.lazy\.css$/i,
        use: [
          { loader: 'style-loader', options: { injectType: 'lazyStyleTag' } },
          'css-loader',
        ],
      },
    ],
  },
};

来源:https://github.com/webpack-contrib/style-loader#lazystyletag

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60632062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档