2022-01-08

Vue.js로 개발 시 성능 이슈에 대한 두 번째 이야기를 하려 한다.

회사 프로젝트 개발 도중에 API로 받은 데이터를 표출하는 데 굉장히 오래걸렸던 적이 있었다.

API 실행 자체는 오래걸리지 않았기에 렌더링에 문제가 있을거라 생각했고,

구글링을 해보니 원인은 '__ob__' 프로퍼티가 있는 데이터들이었다.

이 프로퍼티는 Vuex에 Mutation할 데이터가 리스트나 객체일 경우

그걸 그대로 할당해버릴 때 생긴다고 한다.

리스트의 경우 다음과 같이 되어버린다.

export default createStore({
    state: {
    	data: null
    },
    mutation: {
    	SET_DATA: (state, newData) => state.data = newData	// [1, 2, 3]
    },
    ...
});
console.log($store.state.data);

Untitled

Untitled

위의 두 이미지는 실제로 진행했던 프로젝트의 개선 전의 모습이다.