自定义组件的样式

来源:2-15 自定义组件(上)

Psyduck可达鸭

2018-12-17 11:50:44

我自己做了一个tabs组件,但是父组件想要改变此组件(tabs组件)的样式,比如我想改变文字的颜色,父组件需要在style里样式后加上!important才能改变文字颜色,如果用props接收值的话,那么多样式不可能一一列举出来。

在组件设计上有没有什么标准,比较好的组件写法呢?

tabs组件代码如下:

<template>

<div class="box-view">

<div class="box">

<div class="tab" v-for="(tab,i) in tabs" :class="{selected:tab==selected}" @click="changeTab(i)">

<span>{{tab}}</span>

</div>

</div>

</div>

</template>


<script>

export default{

data(){

return{

selected:null

}

},

props:{

tabs:[]

},

mounted(){

this.selected = this.tabs[0];

},

methods:{

changeTab(i){

this.selected=this.tabs[i];

}

}

}

</script>


<style scoped>

.box{

display:flex;

justify-content:space-around;

color:#999;

}

.selected{

color:red;

}

.selected:after{

content:'';

display:block;

width:100%;

height:2px;

background-color:red;

}

</style>


写回答

1回答

好帮手慕糖

2018-12-17

同学你好,由于你这个代码不全,也不知道具体的需求,无法准确的定位问题。组件的设计没有什么标准哦,不过一般情况下,子组件不能私自改变父组件传递过来的值。在后面的项目中也会用到很多组件,建议:同学可以接着往后学习,看下课程中是在什么情况下封装组件的,也可以总结下哦。

祝学习愉快!

0

0 学习 · 3299 问题

查看课程