javascript - Vue 不应用样式类

标签 javascript css vue.js webpack

我有使用以下 Webpack 配置构建的单文件组件:

const { VueLoaderPlugin } = require('vue-loader');

module.exports = {
  module: {
    rules: [
      {
        test: /\.vue$/,
        use: 'vue-loader'
      },
      {
        test: /\.(png|jpg|gif)$/i,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192
            }
          }
        ]
      },
      {
        test: /\.css$/,
        use: [
          'vue-style-loader',
          {
            loader: 'css-loader',
            options: {
              modules: true,
              localIdentName: '[local]_[hash:base64:8]'
            }
          }
        ]
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]

我使用 <style scoped>标记来设置我的组件的样式。这适用于标签选择器(例如 nav ),但类选择器(例如 .content )不会产生样式。 DOM 包含相关类,但生成的 dist/main.js文件只包含 content_xgKyi9qt[data-v-ab83c772]选择器,未应用,因为组件只有原始 content类。

最佳答案

结果是 vue-style-loader我使用的选项导致名称混淆。我决定从 <style scoped> 切换至 <style module>并使用 <div :class="$style.content">语法代替。

这会导致元素的类与损坏的名称相对应,并为样式提供一定程度的隔离。

关于javascript - Vue 不应用样式类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55375986/

相关文章:

html - 垂直布局(标题 - 菜单 - 内容 - 底部)

javascript - CSS 内容规则忽略 html 元素属性中的换行符 (0x0a)

css - 未应用媒体查询@media screen and (max-width :960px}

javascript - 按下按钮时,如何将用户上传的图像传递到另一个 div?

javascript - 在 firefox 调整大小时加载适当大小的图像

javascript - 为什么我的作用域插槽不显示任何内容?

vue.js - 如何使 vuetify v-data-table 垂直跨越所有可用空间

javascript - Vuejs : fade out-in transition not working

javascript - chrome.api* 方法来知道标签是否有音频

javascript - 使用纯 Javascript 单击时定位父级的子元素