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

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

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

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

Nuxt.js

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

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Vuex

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

0回答

223閲覧

Vuexを使用して、値の変更を行いたい

takochan1192

総合スコア100

Vue.js

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

Nuxt.js

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

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Vuex

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/08/27 14:48

現在携わっているプルジェクトでもVuexを使用しているのですが、
なんとか技術を身につけたいと思い、下記のサイトを参考にサンプルを作成してみました。

参考サイト

テキストフィールドの中に、文字列を入れると、その値がVuexの中でセットされて、
画面に表示される仕組みです。
しかし、現状、入れた文字が表示されておりません。

まず、コンソール画面を確認すると、下記のようなエラーメッセージが出ております。
【エラーメッセージ】
[vuex] unknown local action type: updateName, global type: user/updateName

そして、user.tsとして、Vuexを記述するファイルは下記のように書いています。

Typescript

1import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators' 2@Module({ namespaced: true, name: 'test' }) 3class User extends VuexModule { 4 public name: string = '' 5 @Mutation 6 public setName(newName: string): void { 7 this.name = newName 8 } 9 @Action 10 public updateName(newName: string): void { 11 this.context.commit('setName', newName) 12 } 13} 14export default User

デコレーターを使用している部分に’User’,'setName','updateName'のところに
’experimentalDecorators’をtrueにしないさいというエラーメッセージが出ておりますが、
tsconfig.jsの該当箇所はtrueとなっております。

参考資料のindex.tsの部分は理解することができなかったのですが、
同じように記載しております。今回はutilsというファイルを作成し、
そちらに格納しました。

Typescript

1import Vue from "vue"; 2import Vuex from "vuex"; 3import User from "../store/user"; 4Vue.use(Vuex) 5const store = new Vuex.Store({ 6 modules:{ 7 User 8 } 9}) 10export default store

そして最後に、vueファイルです。

Vue

1<template> 2 <div class="details"> 3 <div class="username">User: {{ nameUpperCase }}</div> 4 <v-text-field filled rounded :value="name" @keydown="updateName($event.target.value)" /> 5 </div> 6</template> 7<script lang="ts"> 8import { Component, Vue } from 'vue-property-decorator' 9import { namespace } from 'vuex-class' 10const user = namespace('user') 11@Component({}) 12export default class User extends Vue { 13 @user.State 14 public name!: string 15 16 @user.Getter 17 public nameUpperCase!: string 18 19 @user.Action 20 public updateName!: (newName: string) => void 21} 22</script>

なんとか調べながらやっておりますが、なかなか理解することができず、
非常に困っております。
どなたかご教示いただけませんでしょうか?

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

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

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

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

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

dameo

2020/08/31 06:58

順を追って覚えればいいのではないかと思います。もともとJavaScriptもTypeScriptもHTMLも分かっている方であれば、いきなりそのコードを見てもスッと入ってくると思いますが、そうでない方は、まずはVue単体でHTMLの簡単なのを試して頂き、次にvue-cliを使ったvueの書き方に慣れて頂き、簡単なのを書けるようになったらTypeScriptで普通の書き方に慣れていただき、それも終わったらTypeScriptでのクラス表記(+decorator)に慣れていただき、最後にVuexを加えれば、当該コードも理解出来ると思います。
takochan1192

2020/08/31 23:24

コメントありがとうございます。 おっしゃる通りですね。精進致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問