2017年3月28日,我到國內一個SAP CRM客戶那裏,同他們的架構師關於二次開發的UI框架選擇SAP UI5仍是Vue進行了一番探討。回到SAP研究院以後,我把這個問題扔到了公司的微信羣裏,引發了你們的熱烈討論。css
由於出差回來以後,我須要向我老闆和老闆的老闆彙報工做,所以寫了這篇blog:html
https://blogs.sap.com/2017/03/31/is-jquery-based-ui-framework-obsolete/前端
時光飛逝,轉眼間2018年也快過完了。今天上午上班路上,突然看到陽哥在公司微信羣裏發了一個截圖,提供了一個指向公網github倉庫的連接:vue
https://github.com/SAP/fundamental-vuejquery
看到這個倉庫的url,Jerry立刻就想起了早些時候在experience.sap.com網站上看到的這條新聞:webpack
https://experience.sap.com/news/democratizing-sap-fiori-with-fiori-fundamentals/git
咱們都知道Fiori表明SAP新一代UI的界面風格,而UI5是Fiori UX(User Experience,用戶體驗)的具體實現技術。SAP決定將Fiori同具體UI實現技術解耦, 是出於什麼考慮呢?github
衆所周知,前端技術發展的速度是很是快的,新理念,新名詞,新工具層出不窮,不少前端開發程序猿常常哀嘆"學不過來了",那麼,若是隻綁定於某一種具體的UI實現技術,Fiori UX會缺少足夠的靈活性,很難充分利用業界最新技術來更好地爲終端用戶服務。web
同時,這一舉動也充分體現了SAP確實在傾聽本身生態圈裏開發人員的呼聲,經過這種解耦容許SAP開發人員根據實際項目須要,靈活選擇最佳UI框架來開發Fiori應用。npm
Fiori UX同底層UI實現框架解耦的關鍵就在於SAP Fiori Fundamentals, 一個輕量級的展示層實現。從技術層面上說,SAP Fiori Fundamentals不是一種新的UI技術或者框架,而是一系列stylesheets和HTML標籤的集合,以此來讓SAP生態圈裏的UI開發人員用其喜歡的UI框架,好比Angular,React,Vue等進行開發,同時自動保證開發出的應用仍具備Fiori的風格和用戶體驗。
SAP Fiori Fundamentals的出現,毫不意味着它會替代UI5,實際上,SAP對於UI5的維護和功能加強一直沒有停步。
按照Jerry文章的風格,固然是到上代碼的時候了。
由於Jerry所在的團隊進行原型開發,組內同事大多喜歡用Vue,因此咱們就來試試SAP Fiori Fundamentals + Vue這對組合。
首先咱們得有一個能工做的Vue應用,而後在此基礎上加工。
您能夠在個人SAP博客上找到一個Hello World的Vue應用,經過webpack打包以後運行,能在瀏覽器裏看到顯示的Hello World:
https://blogs.sap.com/2017/12/22/step-by-step-to-run-vue-application-in-bsp/
這個Hello world的Vue應用,項目結構以下:
下面咱們在其基礎上進行加工。
1. 在項目文件夾下安裝fundamental-vue。這是爲SAP Fiori Fundamentals實現的一個輕量級的Vue組件集合。
npm install --save fundamental-vue
安裝完畢後在package.json裏可以看到fundamental-vue還在beta版,
這一點和SAP在github上的文檔描述一致。
2. 下面這個連接羅列了SAP Fiori Fundamentals裏支持的Vue組件,同時也介紹瞭如何自定義一個新的Vue組件。
https://dist-4d2gqwr8y.now.sh/#/example/table
下圖是一個Table組件的運行時效果,你們不難發現這個Table的外觀和咱們以前用UI5開發的很類似。
點擊Show Code,會顯示這個Table組件的Vue實現源代碼,相似咱們UI5 Toolkit裏顯示的控件在UI5 XML View裏的源代碼,道理是相通的。
把這一大堆代碼粘貼到咱們Vue應用src文件夾下的index.vue裏:
一樣在index.vue裏,在module.exports裏實現做爲Button事件處理函數addCurrentEntry, 以及硬編碼一些測試數據:
在main.js里加入兩行:
import FundamentalVue from 'fundamental-vue';
Vue.use(FundamentalVue);
最後一步,在index.html裏引入位於CDN上的Fiori Fundamentals的css文件。固然github上也提到了也可使用npm install --save fiori-fundamentals將其安裝到本地使用。
至此加工就結束了。用webpack打包以後,運行npm run dev啓動wepack-dev-server, 就能夠在localhost裏看到以下效果:
輸入新的謀士姓名,點擊Add Entry按鈕以後能將其輸入到表格中。
儘管網上有種說法,「郭嘉不死,臥龍不出」,然而孔明永遠是Jerry心中的三國演義第一謀士。
這個使用Vue組件開發而成的具備Fiori UX風格的應用運行時效果,你們能夠查看這個視頻體驗:
<iframe frameborder="0" width="677" height="380.8125" allow="autoplay; fullscreen" allowfullscreen="true" src="https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=q0814wlsmqn&autoplay=false&full=true&show1080p=false&isDebugIframe=false" style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;"></iframe>
或者查看我託管到github上的demo:
http://i042416.github.io/FioriODataTestTool2014/WebContent/097_fiori_vue.html
手機上打開上面連接的效果:
因爲時間關係,Jerry還沒能深刻了解SAP Fiori Fundamentals的更多技術細節,只是簡單給你們展現了它和Vue協同工做的效果。
將來若是有機會,Jerry會給你們帶來更多深刻報道,感謝閱讀。
相關閱讀
要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":