質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

0回答

770閲覧

axiosで取得したデータをVue.jsで指定した要素内のみに値を反映させたい

Tsumugu

総合スコア4

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2020/04/13 09:19

編集2020/04/13 09:57

前提・実現したいこと

・Contentful(CMS)を導入しています。
・サイトはNuxtとVueを用いて作成しています。
・Contentfulのデータはaxiosを用いて取得しています。
・Pugで記載しています。

ロード時に1度、ボタンクリック時にその都度、Contentfulからデータを取得し
HTML内のidで指定された要素内にのみ、値を反映させたいです。

下記にソースコードを掲載いたしましたが、
ロード時は「#FIRST」要素内のみに値を埋め込む。
ボタン2がクリックされたら「#SECOND」要素内に値を、
ボタン3がクリックされたら「#THIRD」要素内に値を反映させたいです。
なお、ボタンがクリックされる毎に、APIで値を取得し直す予定です。(欲しい情報の条件が異なるため)

発生している問題・エラーメッセージ

要素を指定する、ということが上手くいかず詰まってしまいました。

該当のソースコード

index.vue(一部抜粋)

<template lang="pug"> main div#FIRST {{data}} div#SECOND label(for="second_button") input(type="button", id="second_button", @click="setRequestParameter('2')") | ボタン2 p {{data}} div#THIRD{{data}} label(for="third_button") input(type="button", id="third_button", @click="setRequestParameter('3')") | ボタン3 p {{data}} </template> <script> import axios from "axios" export default { return { data: [] } }, methods: { getData: function(strParameter) { let url = "ContentfulのAPI" + strParameter let self = this axios.get(url) .then(function(response){ self.data= response.data }) }, setRequestParameter: function(intCount){ var strParameter = "?limit=" + intCount this.getImage(strParameter) } }, mounted : function() { var strParameter = "?limit=10" this.getData(strParameter) } }

試したこと

安直ながら、「getData()」の関数内で、「this.$el」の値を変更しようとしましたが上手くいかず、
「#FIRST・#SECOND・#THIRD」全ての要素内に値が反映されてしまいました。

一度、Vueのインスタンスとして、切り出すことも考えたのですが、
そうすると関数への引数の受け渡しがわからず断念してしまいました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問