🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

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

Nuxt.js

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

Vuex

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1171閲覧

Nuxt/Vuexのcommitボタンが反応しない

ariunko

総合スコア4

Vue.js

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

Nuxt.js

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

Vuex

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/12/01 09:35

編集2020/12/08 20:17

Nuxt/Vuexのcommitボタンが反応しない

NuxtのVuexでmutationsのハンドル関数increment
ボタンから実行しようとしましたが反応しません。

該当のソースコード

javascript

1// store/index.js 2import Vuex from 'vuex' 3export const state = () => ({ 4 message: 'State message', 5 count: 1 6}) 7export const mutations = { 8 increment (state, payload) { 9 state.count += payload.num 10 } 11}

htmlmixed

1// pages/index.vue 2<template> 3 <div> 4 <h1>{{title}}</h1> // Welcome to Nuxt.js Appが表示される 5 <p>{{ $store.state.message }}</p> // State messageが表示される 6 <p>{{ $store.commit('increment', {num: 1}) }}</p> // 意味ないが最初に1加算される 7 <button @click="$store.commit('increment', {num: 1})"> // 押しても加算されない 8 <!-- <button @click="$store.commit({type: 'increment', num: 1})"> -->// type型に置き換えても加算されない 9 カウント:{{ $store.state.count }} // 2が表示される 10 </button> 11 </div> 12</template> 13 14<script> 15import { defineComponent, ref } from '@nuxtjs/composition-api' 16export default defineComponent({ 17 setup () { 18 const title = ref('Welcome to Nuxt.js App') 19 return { title } 20 } 21}) 22</script>

試したこと

・$storeのstateは表示できている。
・ボタンの外にcommitを書いたら描画後に実行された。
・reactiveにcomputedを使用したが反応しないので戻した。
・mapStateやmapMutationsも試したが反応しないというか正しい記述かわからないので戻した。
・commitにtype型としてmutationsのメソッドを指定しても反応しなかった。
・button要素をa要素に変更しても反応しなかった。

初心者で申し訳ないですが何が足りないのかわからないので教えて下さい。
よろしくお願いします。

補足情報

Node : v15.2.0
npm : v6.13.7
Nuxt : v2.14.7

json

1"dependencies": { 2 "@nuxt/http": "^0.6.0", 3 "@nuxt/utils-edge": "^2.14.8-26779714.3b19e3f4", 4 "@nuxtjs/composition-api": "^0.16.4", 5 "fs": "0.0.1-security", 6 "nuxt": "^2.0.0" 7}, 8"devDependencies": { 9 "babel-eslint": "^10.0.1", 10 "eslint": "^4.19.1", 11 "eslint-friendly-formatter": "^4.0.1", 12 "eslint-loader": "^2.1.1", 13 "eslint-plugin-vue": "^4.0.0" 14}

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました

nuxt.config.jsに@nuxtjs/composition-apiを追加しました。

json

1 modules: [ 2 '@nuxtjs/composition-api', 3 ],

投稿2020/12/08 20:18

ariunko

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問