近期新项目中的公共性组件,在重复使用的情况下,对于不一样的情景,必须持续变动CSS里样式的值,并且早已拥有全局的公共性组件样式了

假如用vue传统式的动态性关联class和style的方法去改动样式(文尾会提及),必须附加写许多 变量和控制模块class,那假如的样式的值,能够从父组件,传入子组件,子组件依据传到值去3D渲染相匹配样式的值,实际上便是要再style中应用data和props中的变量,这要怎么做呢?

其实不是很难,只必须三步,大伙儿看来:

1、HTML构造

<Upload

   ref="upload"

   :show-upload-list="false"

   :before-upload="handleBeforeUpload"

   :disabled="disabled"

   :max-size="maxSize"

   action
>

2、功效地区范畴内设定“CSS变量”

<style lang="less" scoped>
.info-img-wrap {

 --textAlignPosition: center;

 /deep/ .ivu-upload {

  text-align: var(--textAlignPosition);

 }

}
<style/>

3、在JS中根据setProperty()方式 改动“--textAlignPosition”的值,进而间接性更改相匹配子原素的(text-align)文字两端对齐方法

mounted() {

   this.$nextTick(function () {

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

     '--textAlignPosition',

     this.textAlign

    );

   });

}

这要就完成了。

下边再备考一下vue中改动样式也有此外二种方式 ,1是动态性改动class,2是动态性改动style

1、vue中能够根据目标英语的语法和数字能量数组英语的语法来改动class

目标英语的语法

html

<div v-bind:class="{ 'active': isActive, 'text-danger': hasError }"></div>

js

data: {

 isActive: false,

 hasError: true

}

数字能量数组英语的语法

html

<div v-bind:class="\[isActive ? activeClass : '', errorClass\]"></div>

js

data: {

 isActive: false,

 hasError: true,

 activeClass: 'active',

 errorClass: 'text-danger'
}

只必须动态性更改isActive和hasError的值,就可以完成div的关联不一样的class和除掉关联

2、vue中能够根据目标英语的语法和数字能量数组英语的语法来改动style

目标英语的语法

html

<div v-bind:style="{ color: activeColor, fontSize: fontSize   'px' }"></div>

js

data: {

 activeColor: 'red',

 fontSize: 30

}

数字能量数组英语的语法

html

<div v-bind:style="\[styleColor, styleSize\]"></div>

js

data: {

 styleColor: {

   color: 'red'

  },

 styleSize:{

   fontSize:'23px'

 }

}

要是更改data中的变量styleColor和styleSize,就可以动态性改动div的style了。

到此这篇有关在VUE style中应用data中的变量的方式 的文章内容就详细介绍到这了,大量有关VUE style应用data变量內容请搜索之前的文章内容或再次访问 下边的类似文章期待大伙儿之后多多的适用!