前言
我們當然希望能夠更快的完成我們的工作,這樣我們才能有更多的時間做其他的事情,比如說測試、學習、放松。
背景
軟件一般也就這么幾個方面的工作要做,增、刪、改、查。如果歸結到頁面上來說,那么無非也就這么幾個頁面Form頁面(增)、列表頁面(查、刪)、編輯頁面(改)。很大程度上,你的項目就是由不同的實體的這么幾個頁面組裝起來的。既然他們都是這么幾個頁面,那么,我們是不是可以考慮針對這幾個頁面進行抽象呢?然后使用數據描述這幾個頁面的行為。
效果
經典倒敘,先上效果圖
列表頁面
創建頁面
目前就簡單實現了列表頁面和創建頁面。編輯頁面,跟創建頁面太像了。暫時還沒有實現相關內容,不過,這個不是很重要了。
實現過程
需求分析
其實,每個頁面都是存在固定的路數的。
比如說:
列表頁面里邊主要存在這么幾個參數:列表名、列表頭上的按鈕、列表的表頭、列表內容、列表每一行中的操作、分頁控件。
表單頁面列表主要存在這么幾個參數:表單名、表單內容項。
主要的參數出現的位置都是固定的。但是什么地方出現什么內容則是可以變化的,一般情況下,我們都是通過代碼,一遍一遍的重寫這些頁面,然后來達到不同的應用之間的變化的目的。其實我們是可以通過數據來描述他們的。比如說向下面這樣。
列表頁面的定義
Form表單頁面的定義
原始數據的定義
然后將這些定義好的屬性通過后端渲染到頁面上。
就可以達到,前邊展示的這種效果了。
數據存儲
因為數據類型是自定義的,所以數據存儲的字段也是可以自己隨便預設的。然后系統就可以直接支持這一數據類型。在這個Demo里邊,我是簡單粗暴的使用了文件存儲Json文件的方式來進行保存的數據。
其實應該鏈接數據庫的。不過我在Demo項目里邊留下了相關的接口,只要再實現一個數據庫版本的實例就可以無縫對接了。
其實
當然了這只是他的最初級的形態,因為現在寫的配置文件都是通過手寫來實現,將來可以做一個編輯器。並且可以實時看到調整過的效果。
其實這個做法,是來源於PaaS項目中的一個很小很小的功能塊。真正的PaaS項目這一整套東西都是在線上直接編輯看效果的。
最后
系列
這個項目將來會融入到我寫的PaaS Demo中作為前端展示部分。 系列的目錄在 https://juejin.im/post/5eca2a186fb9a047e96b2884 這個部分會一點點完善。
開源
雖然東西不大,但是還是希望能給你一點點啟發。 項目地址 https://gitee.com/anxin1225/Dov.GenericWeb
簡單的體驗
部署到雲端了,可以簡單體驗一下。