当前位置: 首页 > 知识库问答 >
问题:

如何为Vue创建自定义样式特性。js组件

毕泽宇
2023-03-14

我正在尝试使用Vue.js而不需要构建步骤。但是Vue没有样式属性。

所以我想在我的Vue组件实例上创建一个自定义的“style”属性,然后在创建或装载组件时将该属性的内容注入DOM。

问题是我不能理解。(我看了一下插件文档)。我需要创建某种插件,首先检查“style”属性是否存在,然后将其插入DOM。我也不想使用Vue。component()函数,因为我想使用ES6导入和导出。下面是结果的样子:

// MyComponent.js
export default {
  template: `<div>My component</div>`,

  style: `
    .hello {
      background: #ccc;
    }
  `,
}

// App.js
import MyComponent from './MyComponent.js'

new Vue({
  el: '#app',

  components: {
    MyComponent
  }
})

创建MyComponent时,它应该获取“style”属性的值并像这样将其添加到DOM中。任何想法都将不胜感激。

$('body').append('<style>' + STYLE + '</style>')

下面是一个使用Vue的插件。component()函数。但我不想使用组件函数。

https://github.com/NxtChg/pieces/tree/master/js/vue/vue-css

共有1个答案

红甫
2023-03-14

您可以使用v-bind:style或简称:style使用计算内联样式。它会将给定对象映射到正确的CSS样式。使用camelCase,即背景色而不是背景色

如果你想要全局风格,你可以使用mountedlife-cycle钩子在头部插入一个风格标签。您应该在销毁中再次删除它。

编辑:我误解了你的帖子,更新了答案

var app = new Vue({
  el: '#app',
  data: {
    subject: 'World'
  },
  computed: {
    subjectStyle() {
      return {
        color: 'yellow',
        backgroundColor: 'rebeccapurple',
      };
    }
  },
  mounted() {
    const css = `
      body {
        background-color: #eee;
        font-family: 'Comic Sans MS', sans-serif;
      }
    `;
    this.styleTag = document.createElement('style');
    this.styleTag.appendChild(document.createTextNode(css));
    document.head.appendChild(this.styleTag);
  },
  destroyed() {
    this.styleTag.remove();
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  Hello, <span :style="subjectStyle">{{ subject }}</span>!
</div>
 类似资料:
  • 问题内容: 对于唯一的可视化编辑器,我试图创建一个写CSS样式的新指令。我被困在试图使指令更新时,单击复选框以使background-color属性透明。 这是我的(无效)指令: 和html元素: 这是这种情况的jsfiddle:http : //jsfiddle.net/psinke/jYQc6/ 任何帮助将不胜感激。 问题答案: 尝试直接在要更改的元素上使用指令,这样做更容易维护。 HTML:

  • 有时Android提供的组件无法满足我们的需求,因此需要自定义组件. 创建自定义组件的一般步骤: 1.新建类文件,要继承View或View的子类. 2.覆写父类的一些方法. 3.使用自定义组件类. Android Studio会通过模板帮我们自动生成文件,并覆写方法. 我们只需要根据自已的实际需求修修攺改就好了. 操作步骤: 菜单栏: File —> New —>UI Component —> C

  • 问题内容: 我正在http://www.cafeaulait.org/javafaq.html上阅读#6.10项,然后我开始怀疑大型企业如何创建自己的JVM实现。一个人会尝试(或可行)实验性的东西吗? 问题答案: 从技术上讲,创建该新JVM所需的所有信息都是该语言和目标平台的公共规范。即使字节码解释在很大程度上相同,JVM还是需要根据其是要在台式机还是手机上运行而有所不同。 一些开始寻找信息的地方

  • 问题内容: 我想学习如何为html创建具有特殊属性和行为的自定义标签,如果有人可以提供建议,我将不胜感激。 问题答案: HTML5Rocks.com上有一篇有趣且深入的文章,介绍如何使用自定义元素:自定义元素:在HTML中定义新元素 这是该文章的摘录。 实例化元素 创建元素的常用技术仍然适用于自定义元素。与任何标准元素一样,它们可以用HTML声明或使用JavaScript在DOM中创建。实例化自定

  • 如何自定义Video组件控制栏样式

  • 我有几个spring boot应用程序,我想在其中放置一个自定义注释(在一些bean中)。注释将有一个字段(例如propertyValue)。我希望将该值作为新PropertySource的一部分添加到环境中。 我的想法是创建一个将注入环境的bean,然后向其中添加一个新的PropertySource。缺少的部分是如何将自定义注释与这个bean连接起来。 有什么想法吗?