zoukankan      html  css  js  c++  java
  • 前端框架撸起来——概述

    前言

    如今前端框架有很多,各式各样,学习使用成本也高,二次开发也非易事。如果自己设计一套前端框架,按照自己的想法和思路去写,做到使用方便,代码简洁,并非是一件难事。

    下面我带大家一起撸一个中后台的前端框架,本系列主要是写撸框架的思路和主要代码,一些具体的实现,由于代码太长,文章中就省略一带而过。具体的代码可以移步giteegithub进行下载,感兴趣的请star支持。

    本框架对于熟悉jQuery的同学来说,是一个不错的选择,既对jQuery有进一步的认识,又对JavaScript有更深的了解。

    框架名称

    小孩出生要取名字,一个新的框架也是如此,本框架名字取作“KUI”,没啥别的意思,K是取自Known的首字母。

    框架地址

    技术要求

    实现本框架需要有如下技术背景:

    • 要熟悉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);//呈现页面,由路由组件调用
        }
    }
    

    下一章将带大家如何实现框架的组件和路由。

  • 相关阅读:
    Nexus3.0私服搭建
    JavaScript
    Spring基础
    Hibernate注解
    HTML5
    Apache Tomcat
    Java安装(Ubuntu)
    C++ 日期 & 时间
    C++ 引用
    C++ 指针
  • 原文地址:https://www.cnblogs.com/known/p/14198421.html
Copyright © 2011-2022 走看看