kpc 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
kpc 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: JavaScript
操作系统: 跨平台
收录时间: 2018-12-14
提 交 者: JaveyZ

动机

目前市面上已经存在大量组件库,我们为什么还要造这个轮子呢?下面我们解释下这个组件库开发的动机。

随着公司业务和团队的壮大,我们很难统一全公司的技术栈,或者也没有必要统一全公司技术栈。众所周知, 前端单页应用的开发无非基于3大框架:React/Vue/Angular。如果不同框架维护一套自己的组件库,一方面 维护成本非常高,存在大量重复劳动力;另一方面,即使大家都按统一的交互设计稿开发组件库,也很难保证 各个组件库交互和设计的完全统一。所以这时kpc应运而生,它存在的意义就是:同一套组件库适应不同框架 (Write once, run anywhere)

特性

  • 支持多框架 Intact / Vue / React

  • 完全可自定义的主题系统

  • 360°全方位定位系统

  • 声明式表单验证

  • 完善的文档和单元测试 文档

安装

在Intact下

npm install intact kpc --save

在Vue下

npm install kpc intact intact-vue --save

webpack配置

module.exports = {
    ...
    resolve: {
        alias: {
            'intact$': 'intact-vue',
        }
    }
}

在React下

npm install kpc intact intact-react --save

webpack配置

module.exports = {
    ...
    resolve: {
        alias: {
            'intact$': 'intact-react',
        }
    }
}

使用

在Intact下

import {Button} from 'kpc';Hello

在Vue下

    Helloimport {Button} from 'kpc';

export default {
    components: {
        Button
    }
}

在React下

import React from 'react';
import {Button} from 'kpc';

class App extends React.Component {
    render() {
        return Hello    }
}

链接

常见问题

1. 使用兼容层来兼容不同的框架,是否有性能损失?

性能损失非常小,因为兼容层并不会出来太多的东西,仅仅只是完成不同框架执行上下文的切换,唯一带来的损失 可能是框架需要引入兼容层和Intact底层库所带来的打包文件的增大,但只是增大了大概80KB(没有开启gzip)的体积, 相比目前前端项目动辄几M的打包文件,增大的并不多

2. 兼容层能实现100%的兼容吗?

如上所述,兼容层仅仅完成上下文的切换,本质上还是谁的元素谁去渲染,所以理论上能实现100%的兼容, 但目前考虑到实际使用情况并没有实现100%兼容,有些注意事项已在文档中说明,如果有需求后面我们会 逐步完善来达到100%兼容性

开发

git clone https://github.com/ksc-fe/kpc.git
cd kpc
npm install
npm run dev:doc

# 测试
npm run test
# 更新测试快照
npm run snapshot
# 部署文档
npm run deploy:doc
# 发版
npm run release
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

kpc 的相关博客

test 图片

Date: Sun, 18 Oct 2015 08:52:08 +0800 MIME-Version: 1.0 Content-Type: multipart/related; boundary="--F10003B2E1269894...

dede插件的自定义---PHP篇

dede织梦cms插件的开发,要使用Dreamweaver编辑器,或者zendstudio,myeclipse的IDE开发PHP网站程序。 平台:PHP+dede+ampz 第...

上知天文,下晓地理!

黑洞刷屏已经持续了好多天,黑洞照片并不是大家所认为的拍出来的,而是通过望远镜阵列采集的数据并使用一定的算法进行合成的。...

视觉SLAM十四讲 相机与图像(附PCL安装教程)

本文为视觉 SLAM 学习总结,讲解观测方程中 z k , j z_{k,j} zk,j 的具体形式。欢迎交流 😃 本讲内容概要 针孔相机的模型、...

可靠UDP,KCP协议快在哪?

WeTest 导读 云真机已经支持手机端的画面投影。云真机实时操作,对延迟的要求比远程视频对话的要求更高(100ms以内)。在无线...

kpc 的相关问答

还没有任何问答,马上提问

评论 (7)

加载中
挺好
06/28 18:42
回复
举报
技术弥补管理上的问题我觉得有点得不偿失,一来要维护每个支持库的解析太花精力了(万一在多一个框架还要忙着去做支持),二来很少有那个团队会使用这么多前端框架。我这边的前端团队都是统一用一种,一个维护方便,统一,也方便互相交流。
2019/10/28 14:54
回复
举报
JaveyZ软件作者
如果真的能从技术上解决管理上的问题,也未尝不是件好事。如果团队一开始就统一了技术栈,的确没必要再去折腾其它技术栈了。开发这个库,一方面是技术上的探索,另一方面也是历史遗留问题,各部门技术栈都不一样,你很难说服一个Vue的拥趸者去使用React。目前这个库主要用我维护,如果要我去同时开发3个库支持3大框架,我估计一天24小时都不够用。 其实,抛开兼容层来说,这个库在3大框架下,使用起来与原生技术栈写的库几乎没差别,一开始便强调技术实现细节,会造成大家的心理负担,我想这也是这个库难推广的原因吧
01/02 20:16
回复
举报
这个库难推广的原因不是强调技术实现,而是你用的底层是Intact,如果突然出现什么问题,想修正的时候,我还要学intact。其实你这个库,是我看到所有库中做的最好的,特别是那个Table插件。但不知道是因为这个库只有你一个人维护还是什么原因。大方向没太多问题,细节差的有点多。
01/12 17:52
回复
举报
JaveyZ软件作者
“其实你这个库,是我看到所有库中做的最好的”这句话真的太鼓舞人心了 细节差的原因主要还是用的人少吧,毕竟公司内部业务场景有限,很多需求遇不到,但是我们会积极响应用户的意见,以最快的速度完善它 PS:Table组件也是吸取了用户的意见,所以它的功能才这么丰富
01/14 00:18
回复
举报
不支持NG, 差评
2019/08/21 08:36
回复
举报
JaveyZ软件作者
有需求就可以搞
2019/08/28 20:10
回复
举报
更多评论
7 评论
59 收藏
分享
返回顶部
顶部