面向UI编程框架:ui.js框架思路详细设计

因为上一次的灵光一闪,萌生了对面向UI编程的思想实现。通过一段时间的考虑和设计,如今将思想和具体细节记录下来:javascript

具体思路描述:html

  1. 在UI.config文件中,配置全部参数,好比页面模板、全部组件、组件控制、接口注入
  2. ui.js根据配置文件中所选择的模板,进入布局模板库中找到所加载的模板
  3. 将模板首先注入页面之中。
  4. ui.js分析页面模板布局中所须要加载的组件以及其余操做,将这些组件数据注入到数据中转池
  5. 而后数据中转池,将组件信息传递给ui.js,须要哪些组件和操做
  6. ui.js将中转池传过来的组件信息经过配置文件从组件库中去寻找
  7. 寻找到模板所需组件注入页面,数据中转池配合组件的js,对组件进行初始化。直到页面加载完成

 

配置文件的配置设计:java

UI.config=({
    //配置路径
    baseUrl:"/",
    //注入模块
    template:{
        //布局模板名称:模板地址+是否装载
        "layout1":["layout/layout1.tpl",true],
        "layout2":["layout/layout1.tpl",false]
    },
    //注入接口
    interface:{
        "interface1":"www.123.com/interface1",
        "interface2":"www.123.com/interface2",
        "interface3":"www.123.com/interface3",
        "interface4":"www.123.com/interface4",
        "interface5":"www.123.com/interface5",
    },
    //注入组件
    module:{
        //组件名:组件地址+组件是否装载+接口注入
        "md1":["module/header.mold",true,["interface1","interface2"]],
        "md2":["module/body.mold",true,["interface1","interface2"]]
    },
    //组件逻辑js
    data:{
        //js所需接口和其余数据都需数据中转池配合
        "md1_js":"modulejs/md1.js"
    }
});

  

 数据中转池设计思路:编程

具体思路描述:跨域

  1. 每一个组件在配置文件中生成以后,导入ui.js中处理后,会生成每一个组件对应的uuid(惟一标识)
  2. 在进行数据流转和互通的时候,必须经过uuid进行存储和使用
  3. 对于只使用一次和永久存放的数据进行标记和回收
  4. 配合组件进行变动,组件加载数据加载,组件卸载数据卸载
  5. ...

 

面向UI思想框架优点:服务器

  1. 高度复用html,若是一个更通用的模板,能够无限次复用(能够更换接口)
  2. 灵活变动网页布局。传统页面都是布局好了以后没法变动,UI引入布局模板,能够随意进行布局,只要最后引入组件正确便可
  3. 对全部接口进行了统一管理,每一个组件进行分别注入,按需使用
  4. 可进行全球分布协做开发,每一个组件配置地址能够在互联网的任何角落,我只须要按着地址能够取到个人组件和处理js便可
  5. 可一个项目,由互联网上各处的组件拼凑完成,若是后台可支持跨域,那么一个项目先后台均可是互联网上的资源,而咱们部署的服务器只是提供一个展现入口
  6. 开发只须要专一每一个组件开发便可,一个一个组件开发,开发完成经过配置装载上线
  7. 对于项目局部进行更新,可直接卸载一个组件,不须要关闭整个服务器。更新完成以后,更新组件,从新装载上线
  8. 每一个企业可维护本身的一套组件库,高度复用。新项目若是遇到之前开发过的组件直接配置路径和参数使用。
  9. 可将配置文件参数经过后台获取,动态维护全部组件。方便运维
  10. 对于接盘侠(维护人员)来讲,有更方便和快捷的方式进行处理(局部组件开发规范参考自我总结的高效开发和维护方案)
  11. 更使用于单页应用,由于只有针对于局部刷新,加载速度比通常网页速度更快
  12. ...我惟一能想到的就这么多,我会将这个项目开源,但愿更多的志同道合的人,一块儿开发更强大的UI.js

 

 PS:如今只是对思路作一个详细设计,在开发中可能会遇到各类各样的问题,并且该思路是个人第一次起草,可能不是很完善,若是你们有更好的思想和灵感,但愿你们不吝赐教。这段时间先把基础版本写好,而后公布成开源项目出去,之后欢迎你们一块儿完善。框架

下面是个人手稿:运维

 

 

我是码农,我不喜欢被代码玩弄,我喜欢用代码去改变世界,但愿这世界更美好!!!加油,共勉!!!!布局

相关文章
相关标签/搜索