前端框架越來越豐富,前后端分離已經(jīng)是大多數(shù)軟件團隊采取的模式了。vue使用的場景也越來越多。
站在用戶的角度思考問題,與客戶深入溝通,找到廣昌網(wǎng)站設(shè)計與廣昌網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋廣昌地區(qū)。
go本來使用template模板來進行前端的表現(xiàn),現(xiàn)在可以用vue來分擔(dān)很大一部分工作了。
通常直接使用go語言寫后端,然后使用靜態(tài)模板加載渲染前端,前端獲取后端提供的數(shù)據(jù)是使用{{ }}符號,2個套在一起的花括號。這個也是vue使用的數(shù)據(jù)表現(xiàn)方式。
如果go+vue來協(xié)同工作的話,需要對vue進行一點設(shè)置。比如把{{ }}的方式改為[[ ]]的方式。
首先我們要知道,vue的使用,需要在頁面中加載vue.js或vue.min.js
純靜態(tài)網(wǎng)頁使用vue是這樣的(給個html例子)
然后我們實現(xiàn)一個go的簡單web服務(wù)和模板頁面
這個go服務(wù)器通過端口 1989 展示服務(wù)器頁面,提供了一個靜態(tài)文件路徑 htmlpage,我們把vue.js和index.html文件都放置在htmlpage路徑里。
go服務(wù)器還用模板給前臺頁面提供了一個News結(jié)構(gòu)的數(shù)據(jù),數(shù)據(jù)包括:Title,Content,Author的值。
在index.html頁面中,加載vue.js的時候需要帶上靜態(tài)路徑 htmlpage
在 new 一個 vue 變量的時候,必須有一句來設(shè)置包裹數(shù)據(jù)的符號,我們這里設(shè)置這個符號為[[ ]]
同時,所有需要由 vue 渲染的數(shù)據(jù),都寫成類似這樣的樣子
在 go + vue 方式下的完整模板文件 index.html
此頁面中{{ }}包裹的數(shù)據(jù)是由go從后端提供的數(shù)據(jù)( 例如:{{.Title}}),而[[ ]]包裹的數(shù)據(jù),是vue渲染的數(shù)據(jù)。
只是把 Vue里的數(shù)據(jù),改為由go后端提供即可。
好吧,作者已經(jīng)在向月亮示愛了。呵呵 _
運行一下程序,看修改模板后的效果。
Revel Web開源框架
個高效的Go語言Web開發(fā)框架,?其思路完全來自 Java 的?Play Framework。
特點
熱編譯,簡單可選,同步(每個請求都創(chuàng)建自己的goroutine來處理。
Go語言Web框架:beego
一個用Go開發(fā)的應(yīng)用框架,思路來自于tornado,路由設(shè)計來源于sinatra。
支持特性
MVC;
REST;
智能路由;
日志調(diào)試;
配置管理;
模板自動渲染;
layout設(shè)計;
中間件插入邏輯;
方便的JSON/XML服務(wù);
適合??蚣茏銐虺墒炝?A Survey of 5 Go Web Frameworks
小型項目你甚至不用框架,用net/http http - The Go Programming Language
常用庫也成熟了 Top - Go Search
golang的web后端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非??欤體eb項目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對于文件改動重新編譯其實并不是大問題,看pilu/fresh · GitHub,其實你自己寫shell腳本(也可以直接用go寫,因為它本身就是系統(tǒng)語言)監(jiān)控文件系統(tǒng)改動然后自動重新build,即使是C/C++的項目這也不是大問題,人們不用C/C++寫web是因為它們不是寫web app的最佳選擇
golang寫的代碼編譯通過后,要比scripting language魯棒,因為go compiler強制一些最佳實踐