EggBorn.jsJavascript 全棧開發(fā)框架
EggBorn.js 是什么
EggBorn.js是一款頂級Javascript全棧開發(fā)框架。
EggBorn.js是采用Javascript進行全棧開發(fā)的最佳實踐。 EggBorn.js不重復(fù)造輪子,而是采用業(yè)界最新的開源技術(shù),進行全棧開發(fā)的最佳組合。 EggBorn.js前端采用Vue.js + Framework7 / Vue Router + Webpack,后端采用Koa.js + Egg.js,數(shù)據(jù)庫采用mysql。 EggBorn.js時刻跟蹤開源技術(shù)的最新成果,并持續(xù)優(yōu)化,使整個框架時刻保持最佳狀態(tài)。
EggBorn.js 重點解決什么問題:業(yè)務(wù)模塊化
Javascript技術(shù)的蓬勃發(fā)展,為前后端開發(fā)帶來了更順暢的體驗,顯著提升了開發(fā)效率。但仍有網(wǎng)友質(zhì)疑Javascript能否勝任大型Web應(yīng)用的開發(fā)。大型Web應(yīng)用的特點是隨著業(yè)務(wù)的增長,需要開發(fā)大量的頁面組件。面對這種場景,一般有兩種解決方案:
1 采用單頁面的構(gòu)建方式,缺點是產(chǎn)生的部署包很大。
2 采用頁面異步加載方式,缺點是頁面過于零散,需要頻繁與后端交互。
EggBorn.js實現(xiàn)了第三種解決方案:
3 頁面組件按業(yè)務(wù)需求歸類,進行模塊化,并且實現(xiàn)了模塊的異步加載機制,從而彌合了前兩種解決方案的缺點,完美滿足大型Web應(yīng)用業(yè)務(wù)持續(xù)增長的需求。
EggBorn.js 的技術(shù)特點
-
業(yè)務(wù)模塊化:頁面組件按模塊組織
-
加載方式靈活:模塊既可異步加載,也可同步加載
-
模塊高度內(nèi)聚:模塊包括前端頁面組件和后端業(yè)務(wù)邏輯
-
參數(shù)配置靈活:模塊中的前后端可以單獨進行參數(shù)配置
-
國際化:模塊中的前后端均支持獨立的國際化
-
模塊隔離:模塊的頁面、數(shù)據(jù)、邏輯、路由、配置等元素均進行了命名空間隔離處理,避免模塊之間的變量污染與沖突
-
超級易用的事務(wù)處理:只需在路由記錄上配置一個參數(shù),即可完美實現(xiàn)數(shù)據(jù)庫的事務(wù)處理。
-
漸進式開發(fā):由于模塊的高度內(nèi)聚,可以將業(yè)務(wù)以模塊的形式沉淀,在多個項目中重復(fù)使用,既可貢獻(xiàn)到npm開源社區(qū),也可部署到公司內(nèi)部私有npm倉庫。
有了EggBorn.js,從此可復(fù)用的不僅僅是組件,還有業(yè)務(wù)模塊。
快速上手
安裝EggBorn.js腳手架
$ npm install -g egg-born
新建項目
$ egg-born project_name $ cd project_name $ npm install
EggBorn.js目前提供了2個項目腳手架,分別是
front-backend-mysql– 前后端全棧項目模板
front– 前端項目模板,后端可采用其他方案
配置mysql連接參數(shù)
如果采用了`front-backend-mysql`模板,請配置mysql連接參數(shù)(空數(shù)據(jù)庫即可)
編輯src/backend/config/config.default.js文件
// mysql
config.mysql = {
clients: {
// donot change the name
__ebdb: {
host: '127.0.0.1',
port: '3306',
user: 'travis',
password: '',
database: 'egg-born',
},
},
};
運行項目
啟動后端服務(wù)
$ npm run dev:backend
啟動前端服務(wù)
$ npm run dev:front
