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

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

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

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

Q&A

0回答

201閲覧

Nuxt.js Vuexの使い方

ryu-2

総合スコア1

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

0グッド

0クリップ

投稿2021/07/22 04:11

前提・実現したいこと

このコードをVuexのストアのアクション→ミューテーション→ステートでデータ保持をしたいです。まったくわかりません。どなたか教えて下さい。コード丸投げで申し訳ありません。

該当のソースコード

nuxt.js vuex

<template> <div> <h2>データ行</h2>
<table> <thead> <th class="no-column">No</th> <th>項目1</th> <th>項目2</th> <th>項目3</th> <th class="action-column">操作 <button type="button" @click="add(list, -1)">+</button></th> </thead> <tbody> <tr v-for="row, index in list" :key="index"> <td class="no-column">{{index + 1}}</td> <td><input type="text" v-model="row.item1"></td> <td><input type="text" v-model="row.item2"></td> <td> <select v-model="row.item3"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> </td> <td class="action-column"> <div class="btn-group"> <button type="button" @click="add(list, index)">+</button> <button type="button" :disabled="index == 0" @click="up(list, index)">↑</button> <button type="button" :disabled="index == list.length - 1" @click="down(list, index)">↓</button> <button type="button" :disabled="list.length <= 1" @click="remove(list, index)">-</button> </div> </td> </tr> </tbody> </table> <h2>データの状況</h2> <pre>{{list}}</pre> </div>
</template> <script> export default { data(){ return{ list: [ { item1: '', item2: '', item3: '' } ] } }, created: function(){ }, methods: { // 追加 add: function(arr, index){ const newItem = {}; Object.keys(arr[arr.length-1]).forEach(function(k){ newItem[k] = ''; }); arr.splice(index + 1, 0, newItem); }, // 削除 remove: function(arr, index){ if (arr.length <= 1) return; arr.splice(index, 1); }, // 上に移動 up: function(arr, index){ if (index == 0) return; const items = arr.splice(index, 1); arr.splice(index - 1, 0, items[0]); }, // 下に移動 down: function(arr, index){ if (index == arr.length - 1) return; const items = arr.splice(index, 1); arr.splice(index + 1, 0, items[0]); }, // 送信 submit: function(){ }, } } </script>

補足情報(FW/ツールのバージョンなど)

nuxt.js vuex

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問