vue.js - 如何删除未安装组件的组件样式?

标签 vue.js vue-router vue-loader

问题:卸载组件时保留组件样式。

在此example ,我卸载(并销毁)Unused 组件,但该组件的样式仍然影响页面。

背景:我正在尝试将现有的 vue 代码库改编为 SPA(使用 vue-router)。当组件发生更改,但先前组件的样式影响新组件时,就会出现此问题。 我想在不改变样式的情况下解决这个问题(例如创建包装器)。

目前我只看到一种可能的方法:改变风格。 但我想要类似 this 的东西(我还没有测试过)。 当组件安装时,它添加样式,当组件卸载时,它删除样式。

最佳答案

接受的答案现已过时。使用新的样式加载器 API,通过 injectType 类似:

{   
  test: /\.theme\.(sa|sc)ss$/,
  use: [
    {
      loader: 'style-loader',
      options: {attributes: {id: 'theme-sheet'}, injectType: 'lazySingletonStyleTag'}
    },
    {loader: 'css-loader'},
    {loader: 'sass-loader'}
  ]
}

文档:https://github.com/webpack-contrib/style-loader#lazysingletonstyletag

style.use();/style.unuse() 保持不变。

关于vue.js - 如何删除未安装组件的组件样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56950754/

相关文章:

javascript - Vue 中的 Spotify 验证 : getting URL params

html - Material Design Lite CSS/JS 行为与 VUE.js 不一致

javascript - 如何判断循环何时完成。使用 JavaScript、Vue 和 AXIOS

vue.js - 使用vue-router时如何更改页面标题?

vue.js - 无法配置 css 模块以使用 vue-loader

vue.js - 组件和子组件

javascript - Vue.js - 更新的数组项值不会在页面中更新

javascript - Vue-router 只显示基本路由

vue.js - 用 jest : $route is always undefined 进行 Vue 测试