javascript - 为纯 VUE 组件添加样式

标签 javascript vue.js vuejs2 vue-component

我有一个 Element.js文件,这是一个像这样导出的 VUE 组件:

export default {
  template: `
    <div>
     <h1>Single-file JavaScript Component</h1>
     <p>{{ message }}</p>
    </div>
  `,
  data() {
    return {
      message: 'Oh hai from the component'
    }
  },
  style: `
    h1, p {
        color: red !important; /* NOT WORKING */
    }
  `
}

而不是通常的<template></template> <script></script> <style></style> [点]Vue结构。

使用第一个结构。 是否可以为其添加CSS样式?

我尝试使用 style prop 如上所示,但它不起作用。

最佳答案

作为The Single File Components文档说明你不能通过 CSS 做到这一点

No CSS support means that while HTML and JavaScript are modularized into components, CSS is conspicuously left out

但您仍然可以使用 Binding-Inline-Styles为您的组件设置样式。

Vue.component('button-counter', {
  template: `
    <div>
     <h1 :style="style">Single-file JavaScript Component</h1>
     <p :style="style">{{ message }}</p>
    </div>
  `,
  data() {
    return {
      message: 'Oh hai from the component',
      style: {
        color: 'red'
      }
    }
  }
})
new Vue({ el: '#components-demo' })
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<div id="components-demo">
  <button-counter></button-counter>
</div>

关于javascript - 为纯 VUE 组件添加样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51183353/

相关文章:

javascript - Vue.js - 当子组件在 <transition> 内时无法访问 this.$parent

checkbox - Vue.js:如果语句为真,则设置复选框已选中

javascript - Moment.js 如何将 MM/dd/yyyy HH :mm:ss. fff 转换为往返日期/时间模式?

javascript - 停止冗余刷新 : JQuery

php - Laravel Echo + VueJS 广播/授权问题

vue.js - 如何禁用nuxt默认错误重定向

javascript - 在 vue 路由器中更改主体样式

javascript - 如何使用 Javascript 将 URL 数据映射到单个对象中?

javascript - 点击提交按钮后,如何将使用多个类型的输入值从表单显示到另一个页面创建的表?

javascript - 重新渲染时 react 容器未被移除