我是vue.js的新手.我的问题是:

在一个*.vue文件如下:

<template>
  <div id="a">
  </div>
</template>

<script>
  export default {
    name: 'SquareButton',
    props: ['color']
  }
</script>

<style scoped>
    #a {
      background-color: ?
    }
<style>

我怎么使用background-color:号props color(现在是?号).

谢谢你.

推荐答案

不需要.使用计算(computed)属性,然后使用prop返回div的样式,如下所示:

<template>
  <div id="a" :style="style" @mouseover="mouseOver()">
  </div>
</template>

<script>
  export default {
    name: 'SquareButton',
    props: ['color'],
    computed: {
      style () {
        return 'background-color: ' + this.hovering ? this.color: 'red';
      }
    },
    data () {
      return {
        hovering: false
      }
    },
    methods: {
      mouseOver () {
       this.hovering = !this.hovering
      }
    }
  }
</script>

<style scoped>
<style>

Css相关问答推荐

如何使一组元素的行为像字符串一样?

如何使用在另一个层定义块中定义的sass层作用域变量

如果`line-Height:1`,则垂直字母所占的高度

如何在css中创建文件div效果

截断风景中的柔子或强制在其自己的线上,如果是肖像

当滚动量较小时,在滚动问题上动画粘性导航

.SVG 文件对象在锚标签下可点击

来自 A 队和 B 队的类污染了同一个全局命名空间

如何在流线型多页面应用程序中在表情符号和页面名称之间留出一些空白

antd 中的子菜单项不可滚动

用css重复表格边框

如何仅包装左侧内容

用 svelte 设计 body 元素

Angular Material 中的样式垫 Select

twitter-bootstrap:当鼠标悬停在 -tag 中的 btn-group 上时,如何go 掉带下划线的按​​钮文本?

使用 float:left 后如何获得新行?

如何在浏览器的右下角放置一个div?

修复 Mobile Safari (iPhone) 上文本呈现不一致且某些字体比其他字体大的字体大小问题?

:last-child 没有按预期工作?

CSS 外边框