回答編集履歴
2
よく読んだらGoでDOM操作と書いてありました。すいません。
answer
CHANGED
@@ -1,41 +1,5 @@
|
|
1
|
+
GoでDOM操作はGopherJSを使う方法とGo本家のWASM出力機能を使う方法があります。
|
1
|
-
|
2
|
+
以下の内容が参考になるかと思います。
|
2
3
|
|
3
|
-
- バックエンドをGo、フロントエンドにReact/Elm/Vueなどを連携させたい
|
4
|
-
- フロントエンドをGoで書きたい
|
5
|
-
|
6
|
-
前者は何も迷うことなくフロントエンドのライブラリを選んでそのチュートリアルへ。
|
7
|
-
GoのバックエンドはAPIをGoで提供すれば基本はOK。
|
8
|
-
|
9
|
-
nodeの開発サーバーと連携をとる場合はGoのサーバーで一旦受け取ってリバースプロキシーで
|
10
|
-
nodeの開発サーバーに中継すると便利です。
|
11
|
-
(リロードでフロントエンド用のファイルが再構築されるので)
|
12
|
-
|
13
|
-
Goのサーバー記述例(nodeの開発サーバーがlocalhost:3000にサーブされている場合)
|
14
|
-
```go
|
15
|
-
import (
|
16
|
-
"net/http"
|
17
|
-
"net/http/httputil"
|
18
|
-
"net/url"
|
19
|
-
"fmt"
|
20
|
-
)
|
21
|
-
|
22
|
-
func main() {
|
23
|
-
// New functionality written in Go
|
24
|
-
http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) {
|
25
|
-
fmt.Fprint(w, "API Handler")
|
26
|
-
// TODO: implement
|
27
|
-
})
|
28
|
-
|
29
|
-
// Anything we don't do in Go, we pass to the old platform
|
30
|
-
u, _ := url.Parse("http://localhost:3000/")
|
31
|
-
http.Handle("/", httputil.NewSingleHostReverseProxy(u))
|
32
|
-
|
33
|
-
// Start the server
|
34
|
-
http.ListenAndServe(":8080", nil)
|
35
|
-
}
|
36
|
-
```
|
37
|
-
|
38
|
-
後者であれば、それなりに個人的に取り組んでいて以下にやり方をまとめています。参考にどうぞ。
|
39
|
-
|
40
4
|
- [Goだけで作るフロントエンド](http://golang.rdy.jp/2018/02/25/vecty/)
|
41
5
|
- [続Goだけで作るフロントエンド](https://nobonobo.github.io/presantations/frontend/)
|
1
質問の意図が複数考えられるので追記
answer
CHANGED
@@ -1,4 +1,41 @@
|
|
1
|
-
|
1
|
+
質問の意図が以下のどちらなのでしょう?
|
2
2
|
|
3
|
+
- バックエンドをGo、フロントエンドにReact/Elm/Vueなどを連携させたい
|
4
|
+
- フロントエンドをGoで書きたい
|
5
|
+
|
6
|
+
前者は何も迷うことなくフロントエンドのライブラリを選んでそのチュートリアルへ。
|
7
|
+
GoのバックエンドはAPIをGoで提供すれば基本はOK。
|
8
|
+
|
9
|
+
nodeの開発サーバーと連携をとる場合はGoのサーバーで一旦受け取ってリバースプロキシーで
|
10
|
+
nodeの開発サーバーに中継すると便利です。
|
11
|
+
(リロードでフロントエンド用のファイルが再構築されるので)
|
12
|
+
|
13
|
+
Goのサーバー記述例(nodeの開発サーバーがlocalhost:3000にサーブされている場合)
|
14
|
+
```go
|
15
|
+
import (
|
16
|
+
"net/http"
|
17
|
+
"net/http/httputil"
|
18
|
+
"net/url"
|
19
|
+
"fmt"
|
20
|
+
)
|
21
|
+
|
22
|
+
func main() {
|
23
|
+
// New functionality written in Go
|
24
|
+
http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) {
|
25
|
+
fmt.Fprint(w, "API Handler")
|
26
|
+
// TODO: implement
|
27
|
+
})
|
28
|
+
|
29
|
+
// Anything we don't do in Go, we pass to the old platform
|
30
|
+
u, _ := url.Parse("http://localhost:3000/")
|
31
|
+
http.Handle("/", httputil.NewSingleHostReverseProxy(u))
|
32
|
+
|
33
|
+
// Start the server
|
34
|
+
http.ListenAndServe(":8080", nil)
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|
38
|
+
後者であれば、それなりに個人的に取り組んでいて以下にやり方をまとめています。参考にどうぞ。
|
39
|
+
|
3
40
|
- [Goだけで作るフロントエンド](http://golang.rdy.jp/2018/02/25/vecty/)
|
4
41
|
- [続Goだけで作るフロントエンド](https://nobonobo.github.io/presantations/frontend/)
|