vue框架搭建对于二次开发组件的处理思考及解决方案

前言

在框架搭建时经常会遗漏一些公共组件库的实现,例如elementUI所实现的el-button,认为在业务实现时对于其进行个性化开发即可,但是经历过一些项目后,发现如此操作会有一些问题,本文主要简单聚焦于此
全文仅以el-button为例

背景

业务使用组件库问题list

  • 中后期产品需求变更、UI样式变更,如此需要对项目内全量的el-button标签进行个性化调整,此时工作量是巨大并且重复的
  • 部分特殊值,默认值与常用值不一致,大量组件属性重复命名,例如el-button type属性在某个业务内全部需要声明为primary,但是重复声明使用对于前端来说是需要注意的,尤其是从他处copy的代码
  • 公司对某组件进行二次开发,但有正在进行的业务需要使用此类组件二次开发功能
  • …等等

解决方案

博主方案基本思路均为对el-button二次开发为主,如下为二开代码

<script>
import { Button } from 'element-ui'
export default {
  extends: Button,
  props: {
    plain: {
      type: Boolean,
      default: true
    },
    type: {
      type: String,
      default: 'primary'
    }
  }
}
</script>

<script>
import {Tree} from 'element-ui'
export default {
  props: {
    value: {
      type: Array,
      default: () => []
    }
  },
  extends: Tree,
  watch: {
    value:{
      immediate:true,
      handler(val){
          this.$nextTick(()=>{
            this.setCheckedKeys(val);
          })
      }
    }
  },
  created() {
    this.$on('check-change',()=>{
      this.$emit("input",this.getCheckedKeys())
    });
  }
};
</script>

如上均是对于业务开发时各种痛点进行处理,但是组件声明到项目内却有多种方式

声明到项目

  1. 随用随引,需要自行注册到vue页面内
    此方案虽然简单粗暴,便于新人理解并跟踪代码,但是却与简化开发背道而驰,为了少些10个字符却多写了两行以上的代码得不偿失

  2. 注册到全局组件内,但使用与el-button截然不同的组件名(例如z-button)
    此方案可以全局使用二开组件,但是对于已经使用原组件的页面,仍需要对已使用的组件进行更名操作

  3. 二开组件注册全局组件并覆盖原el-button组件
    即二开组件注册为el-button,替换原有组件,此操作会进行全局污染,造成所有组件的指向替换

对于二开组件放在项目的什么位置如何使用,各位仁者见仁智者见智,博主只是给各位提供一些思路,具体实现因项目需求而议

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_默_

别打赏了,点点赞,点点关注就行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值