Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Golang vue.js】Goとvue.jsで通信をしたい

解決したいこと

Golangとvueを使ったwebアプリの開発をしています。

そこで、Golangからscriptタブ内にデータを渡したいのですが、その方法がわからず困っています。(とりあえずGoからフロントにデータをきれいに渡したい)

  <script>
    new Vue({
      el: "#app",
      vuetify: new Vuetify(),
      data(){
        return {
          data: //ここにGoから渡ってきたデータを入れたい!
        }
      }
    })
  </script>

該当するソースコード

ルートとGoのstructはこんな感じです。

//struct
type Task struct {
	ID          int       `json:"id"`
	Title       string    `json:"title"`
	Description string    `json:"description"`
	UserId      int       `json:"user_id"`
	CreatedAt   time.Time `json:"created_at"`
}

//route
func top(w http.ResponseWriter, r *http.Request) {
	tasks, _ := models.GetTasks()
	generateHTML(w, tasks, "layout", "top")
}

自分で試したこと

過去に試した不細工な方法としては以下の方法があります。

<!-- cssで隠してjqueryのtext()でとってくる -->
<span class="data">{{.data}}</span>

<style>
.data{
    display: none;
}
</style>

最後に

JSONを調べてチャレンジしてみたのですが、うまくデータの受け渡しができませんでした。
初歩的な質問で申し訳ありませんが、ご教示お願いいたします。

0

1Answer

そもそもの話Vue.jsなんかのフレームワークを使うのならバックエンドがWebページを返す必要はないと思います.
逆も然りでGolangのテンプレートでやりたいことができるならVue.jsを使う必要がないかと.

バックエンドのGolangはJSONを返して,フロントエンドのVue.jsがaxiosで取得するのがスマートでしょう.

1Like

Comments

  1. ありがとうございます!
    確かによく考えてみたらwebページを返す必要はないですね笑
    一度axiosを使ってチャレンジしてみます!
    丁寧な対応ありがとうございました!

Your answer might help someone💌