关键字: Vue3, 配置开发,快速开发,组件封装
- 关于本项目
- 概述
Mttk Vue Wrap 是一个基于 Vue3 的组件封装工具,核心目标是通过纯 JavaScript/TypeScript 替代传统的单文件组件(SFC)开发模式,同时兼容与 SFC 的混合使用.它允许开发者通过类似 JSON 的配置对象或动态生成的脚本快速构建 Vue 组件,涵盖模板、双向绑定(v-model)、属性、事件、插槽等核心功能.
- 项目起源
在前端开发中,往往有大量通用的功能需要封装.
通常做法是编写SFC组件,通过暴露大量的属性可对组件功能实现定制.譬如常用的组件库,如Element Plus等都使用此方法.一些用户自定义组件,譬如一个典型页面,上面是查询表单(后续称之为典型页面),下面是查询结果列表,也可以通过此方法实现重用.另外,针对表单,如果使用Element Plus(其他组件库也类似),需要写大量的el-form-item,代码重复臃肿.
本项目最初原型是针对上述表单或典型页面,把属性通过JSON配置的方式传入,简化代码.譬如一个表单通过编写一个通用的SFC组件,通过下面的配置渲染出最终的页面
{
"fields": [
{
"type": "input",
"label": "用户名",
"name": "username"
},
{
"type": "input",
"label": "密码",
"name": "password",
"type": "password"
}
],
"submitText": "登录"}
实现上述功能后开始思考如何实现一个通用的通过配置而不是编写不同的SFC,这就是本项目产生的过程.
- 核心功能
MTTK Vue Wrap 允许开发者通过函数和JSON来定义和渲染 Vue 组件.例如,以下是一个简单的输入框组件配置:
export const valueInput = ref("InitValue");
export const configInput = {
'~': "ElInput",
'~modelValue': valueInput,
placeholder: "Please input value",
clearable: true};
然后使用
<MttkWrapComp :config="configInput"></MttkWrapComp> 即可渲染出对话框.
配置文件的全部或部分也可以通过函数生成,从而实现动态和灵活的配置实现.
项目价值:
- 更高的灵活
JavaScript 更易于组合、转换和复用,开发者可以通过简单的脚本逻辑快速生成复杂的组件.譬如通过配置动态生成表单、表格或其他复杂 UI 组件.
- 简化的配置
在实际项目中,开发者通常不需要使用组件的所有功能,通过配置化的方式可以简化代码.
- 提高开发效率
对于常见的页面模板,可以通过配置文件定义差异,然后根据配置渲染页面.
应用场景:
- 脚本化优先
传统 SFC 将模板、脚本、样式分离,导致代码碎片化.MTTK Vue Wrap 将所有功能集成到脚本中,便于组合、转换和复用. - 低代码基础
通过配置化抽象通用逻辑,减少重复代码.例如,80% 的相似页面可通过配置差异快速生成,仅需关注 20% 的定制部分. - 轻量灵活 不强制覆盖组件所有功能,支持按需简化配置,并通过转换工具生成标准格式,降低学习成本
更多内容,请访问 GitHub - jamie-mttk/mttk-vue-wrap
在线演示请访问 Wrap Vue Demo
如有问题或合作请联系我们 sales@mttk.com.cn