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