前端框架撸起来——概述
前言
如今前端框架有很多,各式各样,学习使用成本也高,二次开发也非易事。如果自己设计一套前端框架,按照自己的想法和思路去写,做到使用方便,代码简洁,并非是一件难事。
下面我带大家一起撸一个中后台的前端框架,本系列主要是写撸框架的思路和主要代码,一些具体的实现,由于代码太长,文章中就省略一带而过。具体的代码可以移步gitee或github进行下载,感兴趣的请star支持。
本框架对于熟悉jQuery的同学来说,是一个不错的选择,既对jQuery有进一步的认识,又对JavaScript有更深的了解。
框架名称
小孩出生要取名字,一个新的框架也是如此,本框架名字取作“KUI”,没啥别的意思,K是取自Known的首字母。
框架地址
- Gitee: https://gitee.com/known/kui
- Github: https://github.com/known/kui
技术要求
实现本框架需要有如下技术背景:
- 要熟悉css样式表
- 要熟悉JavaScript脚本语言
- 要熟悉jQuery框架
框架目标
本框架的目标是依赖最少的第三方组件,使用最少的代码,约定大于配置。应满足以下功能:
- 支持单页和多标签iframe页
- 支持多语言、路由、组件和模块化
- 支持文本框、下拉框、日期框、单选框、复选框、文本域、富文本框、弹窗选择框等
- 支持弹出层、标签页、图表、树、列表、表单、表格、可编辑表格等
- 内置登录页、后台框架页、通用增删改查页等
目录结构
KUI ├── static │ ├── fonts │ ├── img │ ├── libs │ │ ├── ztree │ │ ├── datepicker │ │ ├── echarts.min.js │ │ └── wangEditor.min.js │ ├── css │ │ ├── font-awesome.css │ │ └── kui.min.css │ └── js │ ├── jquery.min.js │ └── kui.min.js ├── src │ ├── components │ │ ├── Form.js │ │ ├── ... │ │ └── Router.js │ ├── langs │ │ ├── en.js │ │ └── zhCN.js │ ├── kui.css │ ├── kui.js │ └── app.js ├── bundleconfig.json └── index.html
目录中只有一个html文件,其他的都是js和css文件。单页应用只有一个html文件,即index.html,这个文件的代码很简单,如下所示:
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta name="renderer" content="webkit"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>KUI</title> <base href="/"> <link rel="stylesheet" href="/static/css/font-awesome.css"> <link rel="stylesheet" href="/static/css/kui.min.css"> </head> <body> <div id="app"></div> <script src="/static/js/jquery.min.js"></script> <script src="/static/js/lang/zh-CN.min.js"></script> <script src="/static/js/kui.min.js"></script> </body> </html>
使用示例
框架建成后,易于使用和代码简洁是第一要求,我们期望的一个增删改查页面的代码应该是下面这样的:
function DemoPage() { var url = { QueryModels: baseUrl + '/Demo/QueryDemos', DeleteModels: baseUrl + '/Demo/DeleteDemos', SaveModel: baseUrl + '/Demo/SaveDemo' }; var codes = ['选项一', '选项二']; //定义一个CRUD页面对象,栏位,按钮等 var view = new View('Demo', { url: url, columns: [ { field: 'Id', type: 'hidden' }, { title: '文本', field: 'Text', type: 'text', required: true, query: true }, { title: '日期', field: 'Date', type: 'date' }, { title: '下拉框', field: 'Select', type: 'select', code: codes }, { title: '复选框', field: 'Check', type: 'checkbox', code: codes }, { title: '单选框', field: 'Radio', type: 'radio', code: codes } ], formOption: {},//表单选项 gridOption: { //表格选项 toolButtons: ['add', 'edit', 'remove'] } }); this.render = function (dom) { view.render(dom);//呈现页面,由路由组件调用 } }
下一章将带大家如何实现框架的组件和路由。
Known 是基于 Blazor 轻量级、跨平台、低代码、易扩展的插件开发框架。
源码:https://gitee.com/known/Known
源码:https://github.com/known/Known
如果对您有帮助,点击⭐Star⭐关注 ,感谢支持开源!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!