封装一个ui组件,组件的样式一般是多种多样的
我们可以通过组件传值的方式将ui属性传递给组件,但是我们属性是在js中可以拿到,vue3之前css是无法直接获取的
(vue3中已经可以直接获取,可以去学习一下) 通过vars
那么在vue2中,我们要借助setProperty函数
写一个简单的例子
<template>
<div class="home" ref="UI">
<div class="header">hello world</div>
</div>
</template>
<script>
export default {
data () {
return {
color: 'red'
}
},
mounted(){
this.setUI()
},
methods:{
setUI(){
this.$refs.UI.style.setProperty("--color",this.color);//给变量赋值
}
}
}
</script>
<style>
.home{
.header{
color: var(--color); //使用变量
}
}
</style>
看到另一种写法,要简单一点,不需要借助setProperty函数
<template>
<div class="home" :style="myStyle">
<div class="header">hello world</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue'
export default Vue.extend({
data () {
return {
color: 'red'
}
},
computed: {
myStyle () :object{
return {
"--color": this.color,
}
}
},
})
</script>
<style>
.home{
.header{
color: var(--color); //使用变量
}
}
</style>