如何封装一个组件

82 阅读2分钟

第一 先判断是否需要封装组件

1.封装组件是为了增加复用,提高开发效率,使结构更加清晰

2.所以对多模块可能多次使用,功能独立,可以考虑封装为组件

3.如果功能简单,或者使用频率只有一次,且与业务强耦合,不建议封装

第二 封装组件的三部分

骨架标签结构

对于固定的文字我们可以写死,但是对于可变的部分,例如Button组件中的按钮文字,我们可以考虑从两个方式动态改变,第一个是通过插槽的方式,传入一堆标签。另外我们可以通过props传参的方式来动态传出。

基础样式

对于一个组件,既然是公共的,那么就要考虑其他人来个性化定制,那么我会对一个组件给与一个基本的样式,样式的选择器,可以采用标签选择器,这样的权重会低一些,也可以使用类选择器,使用组件者采用:deep(.xxx){} 方式进行样式穿透。

为了方便其他人更方便的改变例如常见的背景色,可以预制props传入颜色值,v3可以采用v-bind绑定到css样式颜色。

当然你也可预制几个class,供使用者填入就立刻改变样式,现在的很多组件库就是采用这种方式,例如按钮的是否圆角

外部传参

外部传参,一般用于数据渲染居多,例如card组件,你可以传入一个单条数据对象,再单独渲染,这里注意,我们对于传入的数据,要进行ts约束,方便本组件清晰展示

type: Object as ()=>UserItem