【问题标题】:CSS module doesn't work with transition component. How to fix it?CSS 模块不适用于过渡组件。如何解决?
【发布时间】:2021-12-31 04:49:53
【问题描述】:

组件“过渡”在作用域样式中效果很好,但是当我尝试将它与模块化样式一起使用时,它就不能正常工作了。

在研究过程中,我发现了这个帖子:https://github.com/vuejs/vue-loader/issues/494

在这种情况下,核心 vue 开发人员建议使用 sass-loader 功能(&:global 选择器),但它对我不起作用。

我使用 Nuxt 和 Vue2。

<template>
  <div :class="$style.wrapper">
    <button @click="visible ? visible = false : visible = true">
      Show Text
    </button>
    <transition name="test">
      <p v-show="visible">
        Just Text
      </p>
    </transition>
  </div>
</template>

<script>
export default {
  name: 'IndexPage',
  data () {
    return {
      visible: false
    }
  }
}
</script>

<style module lang="scss">
.wrapper {
  &:global(-enter-active) { transition: opacity 1s; }
  &:global(-leave-active) { transition: opacity 1s; }
  &:global(-enter) { opacity: 0; }
  &:global(-leave-to) { opacity: 1; }
}
</style>

【问题讨论】:

  • 究竟是什么错误?
  • 我的意思是“过渡”没有按预期工作
  • 你读过关于过渡的 Vue 文档吗?
  • 我当然读过,但是有一些使用范围样式转换的例子。如何将 transition模块化样式 一起使用

标签: vuejs2 nuxt.js


【解决方案1】:

你使用什么 css 引擎,你有 VuetifyJs 或 TailwindJs 吗?如果您没有 Vuetify,您可能需要自己安装 sass loader,因为 Vuetify 附带 sass loader。 为了使用,你需要像这样安装 sass loader:npm i -D sass-loader@10.1.1 --save-exact &amp;&amp; npm i -D sass。 如果问题仍然存在,请尝试添加您的nuxt.config.js

export default {
  build: {
    loaders: {
      scss: {
        implementation: require('sass'),
      },
    },
  }
}

【讨论】:

  • 作为shown here
  • 没错,你的问题有点含糊,我刚刚重新阅读了你的问题,我认为这篇文章就是你要找的:dev.to/fridanyvall/…
  • 这不是我的问题,但我已经把我的答案联系起来了。
  • 我不使用 UI 库,我已经在我的项目中安装了 sass 和 sass-loader@10.1.1
  • 我的意思是 sass 运行良好。问题是如何将 modular stylestransition 组件一起使用。
猜你喜欢
  • 2015-01-02
  • 2015-11-01
  • 2021-08-09
  • 2017-11-06
  • 2016-02-15
  • 2019-10-20
  • 2014-04-20
  • 2017-05-31
  • 2021-08-05
相关资源
最近更新 更多