Vugu で AddRemoveリストを作成してみる
昨日はGo言語のライブラリのVuguでWebAssemblyに入門してみました。
今日は、Vuguで何か作成しようと思い、Go言語を学びながらAddRemoveリストを作成しました!
出来上がったもの
AddボタンとRemoveボタンをつけました。 Addボタンと押すとitemという文字列がリストに追加されて、Removeボタンを押すとitemという文字列がリストから一つ削除されます。
謎なところ
- emitの仕方が分からない
- RootDataにsliceが追加できない
- RootDataの初期値が分からない
- inputタグからの文字列の受け取りが分からない
- deployの仕方が分からない
emitの仕方が分からない
コンポーネントを分けて作成しようと思ったのですが、親から子供にはpropsでデータを渡せるようになっていました。しかし、子供から親へのデータを渡す方法がわかりませんでした。そもそもGo言語詳しくないので、いろいろといじっても構文すら分からないところがあったので気長に考えてみます。
RootDataにsliceが追加できない
RootDataというのはVueでいうところのdata()に当たります。そのRootDataに配列を定義して、vg-for
を使うことによりで列の長さの分だけliを追加することができます。しかし、現段階だとスライスを使ったものがエラーになってしまい、固定長の長さしかサポートされていないようです。
<ul vg-for='_, item := range data.Items'> <li vg-html="item"></li> </ul>
ですので、sliceからarrayに、arrayからsliceにということにチャレンジしてみました。
だいたい以下のような形で変換することができました。
// arrayからslice kahen := kotei[:] // sliceからarray kotei := make([]string, len(kahen))
RootDataの初期値が分からない
これほんと分かりませんでした。Go言語について詳しくなれたらわかるかもしれないです。
inputタグからの文字列の受け取りが分からない
Vueだとdataに定義しておいた変数を使って、inputタグにv-modelという形でその定義した変数を書くことにより、inputで編集した文字列が簡単に参照できるようになります。
今回はAdd、Removeボタンでリストにitemという文字列を追加するようにしているのですが、好きな文字列を追加したいと考えました。しかし、ちょこちょこ触ってみてもよくわかりませんでした。
成果物
今回作成したAddRemoveListです。
https://github.com/tomatoaiu/vugu-add-remove-list
デプロイできた
https://tomatoaiu.github.io/vugu-add-remove-list/dist/
デプロイ できるように修正
こちらのコミットです。
https://github.com/tomatoaiu/vugu-add-remove-list/commit/faa003819a7afa7228fdd5b08a0026b0bc23b652
何を修正したかと言うと読み込んでいたと思ったwasm_exec.jsファイルを読み込めるようにしただけです。
まとめ
Vuguはまだまだこれからのようでした。Vuguで何かを作成するスキルもまだまだこれからのようでした。
ビルド方法をちゃんと調べてまとめたいです。まぁとりあえず見ることができる形になって良かった!
しかし、現在の仕様だと、Androidからは見ることができないらしい。むむむ
参考文献
- Vugu: A modern UI library for Go+WebAssembly,入手先 https://www.vugu.org/
- vugu/vugu-site: vugu.org website,入手先 https://github.com/vugu/vugu-site