IT&컴퓨터공학/Javascript

[Javascript] 구조 분해 할당 ( destructuring )

yan_z 2021. 3. 10. 13:58

Vuex 를 공부하다가 destructuring에 대한 내용이 나와서 정리해보려고한다.

하나를 공부하는데 필요한 지식이 너무많아서 꼬리에 꼬리를 물고 계속 공부중이다 ! ( 재밌긴 하다 )

 

Destructuring 중 객체 구조 분해 할당

let obj = {
  name : "devlog",
  age : 1
};

let { name, age } = obj; // { "devlog" , 1 }

객체를 구조분해 할 때 주의해야 할 것은 할당 연산자의 왼쪽에 객체리터럴이 와야 하고,할당 연산자의 오른쪽에 오는 값이 null이나 undefined여서는 안된다는 것이다.

 

Vuex - action 예시

// store/index.js
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    increment (context) {
      context.commit('increment')
    }
  }
})

위에서보면 action 핸들러는 context 객체를 받는다. context 객체는 다음과 같은 속성들에 접근할 수 있다.

이때 구조 분해 할당 ( destructuring ) 을 이용해서 context.commit 을 따로 객체화할 수 있다.

actions: {
  increment ({ commit }) {
    commit('increment')
  }
}

이렇게 하는 이유는 단순히 commit 을 여러번 호출해야하는 경우 귀찮기 때문이다 ! ( 라고 알고있음 )

 

참고 : hees-dev.tistory.com/36

 

[Javascript] 구조 분해 할당(destructuring)

ES6에서 배열과 object를 조금 더 쉽게 다루는 방식이 추가됐다. 구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이다. 구조 분해

hees-dev.tistory.com