ES2018の糖衣構文に迷う

www.amazon.co.jp

Nuxt.jsビギナーズガイドを読んでいるところですが、しっくりこなかったJSの糖衣構文に関してメモ。 糖衣構文は波括弧だったり、丸括弧だったり、角括弧だったりで混乱しますね。

  • 波括弧・・・{...}
  • 丸括弧・・・(...)
  • 角括弧・・・[...]

アロー関数の糖衣構文

functionではなく=>で関数を記載することが可能。

export const state = () => ({
  counter: 0
});

引数分割束縛

qiita.com

関数の実引数に波括弧が利用される

increment ({ commit }) {
  commit('increment')
}

本来であれば、contextを変数にもち、 以下のように記載する必要がある。

increment (context) {
  context.commit('increment')
}

それを、分割代入した形となる。

({ commit })→({ commit } = context) →( commit = context.commit )

本来のコードを省略して書くことができるため、 Vuexでは多用されている。

importで波括弧がつくかつかないか

blog.bgbgbg.net

import { mapGetters, mapActions } from 'vuex'
import Cookies from 'universal-cookie'
  • export defaultとしたときは、波括弧は不要
  • exportとしたときは、波括弧が必要

オブジェクトスプレッド

qiita.com

...obj、のように...をつけることで、配列でもオブジェクトでも要素を展開してくれる。

obj = {
  id: 1,
  user: 'name',
  data: 'test' 
}
obj = { ...obj, data: 123 }

つらたん。