在VUE style中使用data中的变量的方法详解


本文摘自PHP中文网,作者coldplay.xixi,侵删。

最近项目中的公共组件,在复用的时候,针对不同的场景,需要不断变更CSS里样式的值,而且已经有了全局的公共组件样式了

如果用vue传统的动态绑定class和style的方式去修改样式(文末会提到),需要额外写很多变量和模块class,那如果我的样式的值,可以从父组件,传到子组件,子组件根据传入值去渲染对应样式的值,其实就是要再style中使用data和props中的变量,这要怎么做呢?

相关学习推荐:javascript视频教程

其实很简单,只需要三步,大家来看:

1、HTML结构

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<Upload

 

   ref="upload"

 

   :show-upload-list="false"

 

   :before-upload="handleBeforeUpload"

 

   :disabled="disabled"

 

   :max-size="maxSize"

 

   action

>

2、作用区域范围内设置“CSS变量”

1

2

3

4

5

6

7

8

9

10

11

12

13

<style lang="less" scoped>

.info-img-wrap {

 

 --textAlignPosition: center;

 

 /deep/ .ivu-upload {

 

  text-align: var(--textAlignPosition);

 

 }

 

}

<style/>

3、在JS中通过setProperty()方法修改“--textAlignPosition”的值,从而间接改变对应子元素的(text-align)文本对齐方式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

mounted() {

 

   this.$nextTick(function () {

 

    this.$refs.upload.$el.style.setProperty(

 

     '--textAlignPosition',

 

     this.textAlign

 

    );

 

   });

 

}

这要就完成了。

下面再复习一下vue中修改样式还有另外两种方法,1是动态修改class,2是动态修改style

1、vue中可以通过对象语法和数组语法来修改class

对象语法

阅读剩余部分

相关阅读 >>

九大vuejs常见面试题,你都会吗?

node+vue怎么实现简单的websocket聊天功能?(代码示例)

angular脏值检测与vue数据劫持的区别是什么

vue项目中关闭eslint校验的方法介绍

react和vue的区别及优缺点是什么

vue项目中怎么设置title图标?(图文详解)

vue兄弟组件传值有哪五种方法

vue路由跳转的三种方式是什么

vue中的nexttick原理

详解6个不同级别的组件可重用性概念

更多相关阅读请进入《vue》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...