angularjs這么強(qiáng)大,前臺(tái)mvc啥的都實(shí)現(xiàn)了,要拿數(shù)據(jù)一般是不是就用$http去后臺(tái)拿了,還有其他拿法么?這樣的話后臺(tái)不就只用寫(xiě)api了?
那一般php寫(xiě)api的框架有什么呢?laravel好流弊的樣子,不過(guò)它有模板引擎,適合不?
還是說(shuō)不用框架直接寫(xiě)就好
抱歉聲望不夠不能點(diǎn)贊?。(╯□╰)o
NG 是一種 MVVM 的前端框架,理想的話是實(shí)現(xiàn)前后端的完全分離,后臺(tái)只提供API就得了。實(shí)現(xiàn)了前后端的解耦,這種解耦允許我們開(kāi)發(fā)出前端和后端獨(dú)立的應(yīng)用,瀏覽器消費(fèi)后端API方式同樣適合Andoird iPhone等移動(dòng)設(shè)備。當(dāng)我們開(kāi)發(fā)前端應(yīng)用時(shí),后端編程語(yǔ)言不再需要了,只需要HTML/CSS/JS,這對(duì)大多數(shù)前端開(kāi)發(fā)者是一種解放。
后臺(tái)不就只用寫(xiě)api了?
這是大好事一件啊。而且個(gè)人認(rèn)為并不能只歸結(jié)于Angular,與RESTful風(fēng)格接口被廣泛接受也有很大關(guān)系
所有的框架、設(shè)計(jì)、工程,最終努力的方向都只有一個(gè):讓每個(gè)人專(zhuān)注自己的領(lǐng)域
在angular們之前,前端也有針對(duì)SPA(單頁(yè)面應(yīng)用)的框架,比如extjs,也是把視圖層整個(gè)放到瀏覽器端。
SPA的開(kāi)發(fā)方式解決了非常重要的一個(gè)維護(hù)痛點(diǎn):前后端模板臟地帶,以前這一塊是需要前后端共同維護(hù)的,現(xiàn)在不需要了,后端工程師不再需要直接參與到展現(xiàn)層的工作中
但是,由于沒(méi)有被廣泛認(rèn)可的接口風(fēng)格,在設(shè)計(jì)接口時(shí)仍然難以避免地?fù)诫s進(jìn)對(duì)展現(xiàn)層的考慮,導(dǎo)致難以復(fù)用。最常見(jiàn)的情況就是為相似的后端資源重復(fù)開(kāi)發(fā)多套接口,這其實(shí)是在浪費(fèi)后端工程師的寶貴時(shí)間。
可以說(shuō),從工程角度保證后端工程師只管寫(xiě)接口,只管把接口寫(xiě)好
,是對(duì)后端生產(chǎn)力的巨大解放。
要實(shí)現(xiàn)這點(diǎn),就需要有一套前后端普遍接受的接口風(fēng)格,它可以滿(mǎn)足跨頁(yè)面甚至跨平臺(tái)的資源訪問(wèn)需求,同時(shí)又有良好的語(yǔ)義性和可緩存性
答案就是RESTful
隨著RESTful風(fēng)格接口被廣泛接受,前端在框架層面上不需要考慮和什么后端配合,只要訪問(wèn)RESTful資源即可。后端工程師徹底與展現(xiàn)層解耦,無(wú)論客戶(hù)端是用angular/backbone,還是移動(dòng)端。寫(xiě)接口、寫(xiě)好接口即可
當(dāng)每個(gè)人都專(zhuān)注于自己領(lǐng)域的時(shí)候,才是價(jià)值最大化的時(shí)候
理論來(lái)講是的,
如果你的應(yīng)用做成了SPA, 那么后端只要一個(gè)渲染頁(yè)面的根路由. 其他都是API路由了.
但實(shí)際項(xiàng)目中SPA是否好用,坑是否多, 那么還需要后端混合路由和前端部分SPA結(jié)合.