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