【问题标题】:Tried to apply css to a component conditionally using prop but its not working尝试使用 prop 有条件地将 css 应用于组件,但它不起作用
【发布时间】:2018-10-30 18:01:03
【问题描述】:

.storyMobile{
color:green;
}
.storyWeb{
color:red;
}
<div class="storyMobile">
hii
</div>
<div class="storyWeb">
hii
</div>


//main view

  <div>
        <story   :story="stories[0]"/>
  </div>


//here it prints stories in red colour but I want it to be displayed in green colour - how can I do this?

这是我的组件,其中我有 2 个具有 2 个不同类别的 div,一个将用于移动设备,一个将用于网络。

<div class="storyMobile">
//code
</div>

 <div class="storyWeb">
//code
</div>

//这是我导入这个组件的主要视图

<div class="body-frame">
    <Header></Header>
    <section class="content-section-bar" v-if="stories && stories.length">

      <div>
        <story   :story="stories[0]"/>
      </div>
    </section>
</div>

默认情况下,故事组件位于网络中,因此“storyweb”类被应用到它,但我希望“storyweb”类被应用到它。

我在 vue.js 中应该怎么做我尝试使用 props 但没有得到想要的输出。

【问题讨论】:

  • 能否给出完整的代码或者在sn-p中给出一个简单的例子?
  • 附加,基本上我有 2 个类,默认情况下第 1 类正在应用,但我希望应用第 2 类

标签: html css vue.js prop


【解决方案1】:

这是你想要的吗?

你的组件:

<div :class="className"></div>

脚本:

export default {
  props: {
    className: {
      default: 'storyWeb'
    }
  }
}

用法:

<story :story="stories[0]"/>
<story :story="stories[0]" class-name="storyMobile"/>

Vue.component('story',{
  template: `<div :class="className">test</div>`,
  props: {
    className: {
      type: String,
      default: 'storyWeb'
    },
    story: {
      type: Object,
      required: true
    }
  }
})

var app = new Vue({
  el: '#app',
  data () {
    return {
      stories: [
        {content: 'sotry1 content'},
        {content: 'story2 content'}
      ]
    }
  }
})
.storyMobile{
  color:green;
}
.storyWeb{
  color:red;
}
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
  <story :story="stories[0]" class-name="storyMobile"></story>
  <story :story="stories[1]"></story>
</div>

【讨论】:

  • 什么也没发生,它仍然以默认方式显示,即 web
  • 我写了一个简单的例子,看看。
猜你喜欢
  • 2021-10-22
  • 2018-09-10
  • 2018-01-26
  • 1970-01-01
  • 2021-11-01
  • 2020-09-09
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
相关资源
最近更新 更多