天天看點

面向UI程式設計架構:ui.js架構思路詳細設計

由于上一次的靈光一閃,萌生了對面向UI程式設計的思想實作。經過一段時間的考慮和設計,現在将思想和具體細節記錄下來:

面向UI程式設計架構:ui.js架構思路詳細設計
具體思路描述:

  1. 在UI.config檔案中,配置所有參數,比如頁面模闆、所有元件、元件控制、接口注入
  2. ui.js根據配置檔案中所選擇的模闆,進入布局模闆庫中找到所加載的模闆
  3. 将模闆首先注入頁面之中。
  4. ui.js分析頁面模闆布局中所需要加載的元件以及其他操作,将這些元件資料注入到資料中轉池
  5. 然後資料中轉池,将元件資訊傳遞給ui.js,需要哪些元件和操作
  6. ui.js将中轉池傳過來的元件資訊通過配置檔案從元件庫中去尋找
  7. 尋找到模闆所需元件注入頁面,資料中轉池配合元件的js,對元件進行初始化。直到頁面加載完成

配置檔案的配置設計:

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"
    }
});
      

  

 資料中轉池設計思路:

面向UI程式設計架構:ui.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:現在隻是對思路做一個詳細設計,在開發中可能會遇到各種各樣的問題,而且該思路是我的第一次起草,可能不是很完善,如果大家有更好的思想和靈感,希望大家不吝賜教。這段時間先把基礎版本寫好,然後公布成開源項目出去,以後歡迎大家一起完善。

下面是我的手稿:

面向UI程式設計架構:ui.js架構思路詳細設計
面向UI程式設計架構:ui.js架構思路詳細設計
面向UI程式設計架構:ui.js架構思路詳細設計

我是碼農,我不喜歡被代碼玩弄,我喜歡用代碼去改變世界,希望這世界更美好!!!加油,共勉!!!!

繼續閱讀