Vuex: что такое средняя квадратная скобка в мутации? - PullRequest
3 голосов
/ 12 июня 2019

Интересно, почему значения мутаций используются в "[]" в Vuex.

Что означает код типа ""?

export const SOME_MUTATION = 'SOME_MUTATION'

Это просто имя константы для функции? Если это так, мне интересно, почему константа записана в "[]".

Кроме того, при использовании в свойстве computed или method мне интересно, почему вы передали бы следующий код как ["SOME_ACTION"] вместо "SOME_ACTION".

...mapActions(["SOME_ACTION"]),

код экзамена

export const SOME_MUTATION = 'SOME_MUTATION'

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

const store = new Vuex.Store({
  state: { ... },
  mutations: {
    [SOME_MUTATION] (state) {
    }
  }
})

1 Ответ

3 голосов
/ 12 июня 2019

Это называется имя вычисляемого свойства .Это не вещь Vuex.Это ECMAScript 2015.Поэтому любой механизм, поддерживающий ES2015, будет поддерживать этот синтаксис.

До ES2015 имена свойств объекта не могут быть вычислены.То есть, если вы хотите иметь динамическое имя свойства, вы, вероятно, напишите что-то вроде:

const obj = {};
const result = Math.random() < 0.5;

if (result)
  obj.data = result;
else
  obj.error = result;
  
console.log(obj);

Используя вычисленное свойство ES2015, теперь вы можете сделать что-то вроде:

const result = Math.random() < 0.5;
const SOME_PROPERTY = result ? 'data' : 'error';

const obj = {
  [SOME_PROPERTY]: result
}

console.log(obj);

Конечно, это просто очень упрощенный пример, который на самом деле не демонстрирует, какую пользу он приносит, но, на мой взгляд, это действительно хороший синтаксический анализатор.

Вы можете узнать больше о его случае использования онлайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...