Vue.js with Go
@k2wanko
自己紹介
コキチーズ
- @k2wanko
- フロントエンドとGoとGoogle系の技術が大好きなフレンズ
- 来月社会人のギリギリ大学生
今日話すこと
GoでVue.jsを
書く方法
Demo
https://goo.gl/cc5Q0M
Goで書くためのツール
GopherJS
- GoのコードをJSに変換するトランスパイラ
- ブラウザを想定して作られているがNode.jsでも動かせる
- goroutineやreflectなど実装されていてGoを書くのに困らない
- OpenGLとWebGLをシームレスに切り替えられたりもできる
- 様々なライブラリのGopherJSバインディングが作られてる
- https://github.com/gopherjs/gopherjs
go-vue
- GopherJSでVue.jsを書くためのバインディング
- サーバサイドレンダリングもサポートしようとしてるけどまだ実
験中
- https://github.com/k2wanko/go-vue
go-loader
- WebpackのGoファイルローダー
- Hot Module Replacementを使ってホットリロードを実現
- シングルファルコンポーネント内でも使えるようになるはずだけど動かず
- Vueでdataオブジェクトにgetter setterがセットできないっぽい?(調査中)
- 現在はローカルのgopherjsコマンドを叩いてる
- 将来的にはGopherJSのコンパイラをNode.jsで動くようにしたい
- https://github.com/k2wanko/go-loader
なぜGoで書くのか
なぜGoで書くのか
- サーバサイドレンダリングする時サーバとフロントで
一貫したAPIクライントを使える
- サーバと共通のロジックをフロントで持てる
- フロントの世界に型を持ってこれる
- テスト書きやすい
- gofmt最高
Q: 実際VueをGoで書くのはどうなの?
A: つらい
つらい理由
- GoとJSの世界とのやりとりはめんどくさい
- VueはGoで書くために作られてない
- GopherJSはVueを書くために作られてない
Goでフロントを書くのは夢
現実ではTypeScriptかFlowTypeか普通にbabelがよい

Vue.js with Go