Written by Kasumi

Vue.jsで配列要素を動的に追加する方法

Vue.jsで配列要素を動的に追加したい。

本記事ではこのような悩みを解決。

実装方法について解説します。

実装サンプル

See the Pen
Untitled
by Kohei (@kouk05)
on CodePen.0

実装サンプルです。

フルーツと値段が連想配列で定義されており、リストで表示されてます。

フォームに任意の値を入力。

ボタンを押すと、配列リストに入力された値が新たに追加されてます。

実装手順は以下の通りです。

HTMLを準備

<div id="app">
  <ul>
  <li v-for="item in items">
    {{ item.title }}-{{ item.price }}
  </li>
  </ul>
  フルーツ: <input v-model="additem"><br>
  値段: <input v-model="addprice"><br>
  <button style="margin-left: 10px;" v-on:click="add">追加</button>
</div>

まず最初にHTMLを準備します。

今回は例としてクリックイベントを行ったら、連想配列要素を追加する動的処理を紹介します。

新たな配列要素を追加する入力フォームタグ(input)にv-modelディレクティブを付与します。

クリック要素にv-on:clickディレクティブを付与します。

Vue.jsで配列要素を追加

const app = Vue.createApp({
  el: "#app",
  data() {
    return {
//連想配列を定義
      items: [
      { title: "リンゴ",price: "200円"},
      { title: "メロン",price: "500円"}
    ],
    }
  },
  methods: {
//クリックしたら動的に配列要素を追加
    add: function (event) {
      this.items.push({ title: this.additem, price: this.addprice });
    },
  },
});
app.mount("#app");

Vue.jsで配列要素を追加するコード例です。

データメソッドにはあらかじめ連想配列を定義。

methodsオプション内にv-on:clickディレクティブに設定した値で関数を作成。

関数内でpushメソッドを定義

引数に前章の入力フォームタグで指定したv-modelディレクティブの値を追加する要素数分、指定します。

以上で実装完了です。

まとめ

Vue.jsで配列要素を動的に追加する方法について紹介しました。

以上で解説を終わります。

関連記事

Vue.js

【Vue.js】v-modelを使いselectの値を取得。初期値を設定する方法

2022.09.25
80
Vue.js

vue-scrolltoのスムーススクロールで固定ヘッダーの高さ分アンカー位置がズレる(隠れる)【解決方法】

2022.09.05
120
Vue.js

Vue.jsでHTML要素をコンポーネント化(パーツ化)する方法

2022.09.01
121
Vue.js

Vue.jsで開閉するドロップダウンリストを実装する方法

2022.09.02
103