为啥我的 Vue 组件没有绑定样式?

Posted

技术标签:

【中文标题】为啥我的 Vue 组件没有绑定样式?【英文标题】:Why doesn't binding style my Vue component?为什么我的 Vue 组件没有绑定样式? 【发布时间】:2020-08-05 04:41:03 【问题描述】:
const EventLevelBoard = 
  name: "EventLevel",
  data: 
    levelStyle: 
      display: "block"
    ,
    levelStyleinner: [
       display: "block" ,
       display: "block" ,
       display: "block" 
    ]
  ,
  template: `<ul class="eventlevel" v-bind:style="data.levelStyle">
    <li v-for="(item, idx) in eventlist" v-key="idx"  v-bind:style="levelStyleinner[idx]"><strong class="name">item.name</strong>
    <strong class="size">item.size</strong></li>
  </ul>`,
  props: 
    eventlist: 
      type: Array
    
  
;

开发控制台错误:

data.levelStyle 未定义

data.levelStyleinneris 未定义

为什么找不到那些数据属性?

【问题讨论】:

【参考方案1】:

因为data 不是组件实例上的可用属性,即使它显然是在选项中定义的。

您可以直接访问数据,就像您在此处所做的那样:

v-bind:style="levelStyleinner[idx]"

如果你真的想通过实例访问它,你可以通过$data

v-bind:style="$data.levelStyle"

绑定周围不应有花括号

【讨论】:

以上是关于为啥我的 Vue 组件没有绑定样式?的主要内容,如果未能解决你的问题,请参考以下文章

15 Vue中子组件样式的绑定和行内样式模版编写

为啥 CSS 关键帧动画在具有范围样式的 Vue 组件中被破坏?

Vue基础语法(样式绑定,事件处理,表单,Vue组件)

为啥vue的内联样式无效? p标签里的内容打印不出来

使用样式绑定设置 scss 变量

vue组件6 使用vue添加样式