• 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: {
             '24px',
            height: '24px'
          },
          innerSize: {
            fontSize: '14px'
          }
        };
      },
      computed: {}
    };

    子组件:

    <template>
      <div
        class="player-icon"
        :style="{
           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 {
      //          '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>

  • 相关阅读:
    AspNet Core 3.x、5.x、6.0 部署为Windows服务
    04月20日总结
    04月11日总结
    04月23日总结
    04月19日总结
    04月18日总结
    04月12日总结
    04月22日总结
    04月10日总结
    04月16日总结
  • 原文地址:https://www.cnblogs.com/hahahakc/p/13151626.html
Copyright © 2020-2023  润新知