Vue 父组件向子组件动态传style样式

父组件:

DOM部分

 <el-table-column prop="img" :label="label" width="180">
        <template slot-scope="scope">
          <div class="img-wrap">
            <img v-lazy="scope.row.album.picUrl" alt="" />
            <PlayIcon :style="out-style" :inner-size="size"></PlayIcon>
          </div>
        </template>
</el-table-column>

script部分:

复制代码
import PlayIcon from '@/base/playIcon';  //引入子组件
export default {
  props: ['data'],
  components: {
    PlayIcon
  },
  data() {
    return {
      label: '',
      tableData: [],
      outStyle: {
        width: '24px',
        height: '24px'
      },
      innerSize: {
        fontSize: '14px'
      }
    };
  },
  computed: {}
};
复制代码

子组件:

复制代码
<template>
  <div
    class="player-icon"
    :style="{
      width: outStyle.width,
      height: outStyle.height,
      lineHeight: outStyle.height
    }"
  >
    <span
      class="iconfont icon-yousanjiao"
      :style="{ fontSize: innerSize.fontSize }"
    ></span>
  </div>
</template>
<script>
export default {
 // 这种方式生效了
  props: ['outStyle', 'innerSize'],
 
 // 这种方式没生效,不知道为什么
  // props: {
  //   outStyle: {
  //     type: Object,
  //     default: () => {
  //       return {
  //         width: '24px',
  //         height: '24px'
  //       };
  //     }
  //   },
  //   innerSize: {
  //     type: Object,
  //     default: () => {
  //       return {
  //         fontSize: '14px'
  //       };
  //     }
  //   }
  // },
  created() {},
  data() {
    return {};
  }
};
</script>
<style lang="scss">
.player-icon {
  @include abs-center();
  @include round(2.142857rem);
  border-radius: 50%;
  background-color: rgba($color: #fff, $alpha: 0.5);
  text-align: center;
  line-height: 24px;
  span {
    // display: inline-block;
    // margin: auto;
    // font-size: 1.428571rem;
    color: $theme-color;
  }
}
</style>
复制代码

 

 

posted @   haha-uu  阅读(6481)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示