web-dev-qa-db-ja.com

Vuex:なぜ突然変異、アクション、ゲッターを大文字で書くのですか?

なぜミューテーション、アクション、ゲッターの関数名を大文字で書くのか疑問に思います。この大会はどこから来たのですか?

export default {
  SOME_MUTATION (state, payload) {

  },

  ANOTHER_MUTATION (state, payload) {

  },
}
15

定数をすべて大文字で書くのは 長年のコーディングスタイル です。

Vuexから ドキュメント

さまざまなFlux実装でミューテーションタイプに定数を使用することは、一般的に見られるパターンです。これにより、コードでリンターなどのツールを利用できるようになり、すべての定数を1つのファイルに入れることで、共同作業者はアプリケーション全体で可能な変更を一目で確認できます。

つまり、ほとんどの場合、定数に大文字で名前を付けるという長年の伝統に従っているだけです。必須ではありません。

定数を使用するかどうかは主に好みです-多くの開発者がいる大規模なプロジェクトでは役立ちますが、定数が気に入らない場合は完全にオプションです

6
Bert

Bert によって受け入れられた答えは、少し誤解を招くものです。定数変数は伝統的にすべて大文字で書かれていますが、質問での使用方法によって定数になるわけではありません。

これにより、コードはリンターなどのツールを利用できます

公式のVue.jsドキュメント すべて大文字を使用することをお勧めします が、追加ファイルの変数として。これにより、他のファイルで使用可能な関数名を要求し、オートコンプリートを使用できるようになります。

mutation-types.js:

_export const SOME_MUTATION = 'SOME_MUTATION'
_

store.js:

_import Vuex from 'vuex'
import { SOME_MUTATION } from './mutation-types'

const store = new Vuex.Store({
  state: { ... },
  mutations: {
    // we can use the ES2015 computed property name feature
    // to use a constant as the function name
    [SOME_MUTATION] (state) {
      // mutate state
    }
  }
})
_

ここで異なる書き込みスタイルに注意してください(計算されたプロパティ名と角かっこ):

_[SOME_MUTATION] (state) { }
_

関数名をすべて大文字で書く場合(つまり、SOME_MUTATION(state) { })、唯一の利点は、vuex関数を他の関数から分離するための単なる視覚的なものですが、私の意見では、これはあまり意味がありません。計算されたプロパティ名([SOME_MUTATION] (state))を持つものに固執して、すべての利点を取得します。

11
Pwdr