0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VUEでAPIからJSON形式で返されたn個のメッセージをn行で画面に表示

Posted at

VUEでAPIからJSON形式で返されたn個のメッセージをn行で画面に表示

やりたいこと

バックエンドのAPIに何かしらの処理を投げて返ってきたresponse(JSON形式)に含まれるメッセージを画面に表示したいが、何行あるかは結果ごとに異なる。
画面には返ってきたメッセージがあればすべて表示したい。
※「何行あるか」の情報もJSONに含まれるものとする。

実装

v-forディレクティブを使用することで配列内の複数個のメッセージを表示

<script lang="ts">
    //メッセージ格納用のオブジェクトを宣言
    type TypeMessageList={
        count:number,
        messages:string[],
    }
    const Messages = reactive<TypeMessageList>({
        count:0,
        messages:[],
    })

    async function throwAPI (){  
        try {
            //メッセージ取得API
            const res = await axios.get("/getmessageapi")
            //オブジェクト初期化
            Messages.count=0;
            Messages.messages=[];
            //メッセージの行数を取得し、行数分ループすることでメッセージを配列に格納
            Messages.count=res.data.count;
            for(let i = 1;i<=Messages.count;i++){
                Messages.push(res.data.messages[i].message);
            }
        } catch (err) {
        //ここはエラー処理
    }
<script>

<template>
    //メッセージ取得ボタン
    <button v-on:click="throwAPI()" >メッセージを取得する</button>
    //v-forでループし、メッセージを表示
    <div v-for="message in Messages.messages" :key="message">
        {{ message }}
    </div>
</template>

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?