VUE中父组件动态修改子组件样式

8,975次阅读
没有评论

共计 907 个字符,预计需要花费 3 分钟才能阅读完成。

  在项目中遇见多个父组件引用同一个子组件,但是根据不同的页面需要修改子组件的部分样式,我查了就以下几种方法:

在 Vue 中,通常父组件可以应用子组件并设置一些样式。但是,父组件不能直接修改子组件内部的样式,因为子组件的样式通常在其自身的模板或样式中定义。

父组件可以通过以下几种方式影响子组件的样式:

  1. 传递 props: 父组件可以通过 props 将数据传递给子组件,子组件可以根据这些 props 来渲染不同的样式。

  2. 使用 slot: 父组件可以通过 slot 向子组件传递内容,包括 HTML 和 CSS 类。子组件可以将这些内容插入到自身的模板中。

  3. 使用全局样式或者 CSS 作用域: 如果您在 Vue 中使用了全局样式或者 CSS 作用域,那么这些样式也会应用到子组件中。

  4. 使用 CSS 选择器: 父组件可以使用 CSS 选择器来选择子组件的 DOM 元素,并对其应用样式。但是,这种方式可能会导致样式耦合和不可维护性,因此不建议过度使用。

最好的办法传递 props,代码如下:

1. 在父组件冲传递:customStyle=”customStyle”

2. 定义 customStyle 变量,给子组件传递的样式,使用 json 格式,可以传入多个

 customStyle: {
        customStyle: {
        // padding: '16px 0 16px 84%',
        position: 'fixed',
        /* right: '13px', */
        bottom: '0',
        width: '53.6%',
        boxShadow: 'rgba(16, 144, 127, 0.15) 0px 0px 8px 0px',
        backgroundColor: 'white'
      },
      colWidth1:{width:'17.3%'},
      colWidth2:{width:'21.83%'},
      colWidth3:{width:'19.3%'},
      colWidth4:{width:'10.3%'},
      }

3. 在子组件中定义接收类型

 props: {
     
      customStyle: {
      type: Object,
      default: () => ({})
    }
    },

4, 在需要修改的地方使用动态样式

  
           
           
              不通过 
              通过 
           
           
           
              不通过 
              通过 
           
           
           
              不通过 
              通过 
           
           
           
              无法溯源 
              任务指派 
           
           
           
              无法溯源 
              提 交 
           

           
           
              流程详情 
           
         

原文地址: VUE 中父组件动态修改子组件样式

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-02发表,共计907字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)