컴포넌트에 상태가 표시되는 이유는 무엇입니까?
제가 알기로는 vuex의 요점은 돌연변이/액션/게터를 통해서만 컴포넌트에 노출시킴으로써 상태의 일관성을 보장하는 것입니다.
그러나 컴포넌트는 돌연변이/액션을 사용하지 않고 $store.state를 직접 조작할 수 있기 때문에 상태가 일관되지 않을 수 있습니다.
vuex 상태가 직접 노출되는 이유는 무엇입니까?
돌연변이/행동/게터 등을 사용하는 것이 권장되는 베스트 프랙티스이지만 반드시 따라야 하는 것은 아닙니다.
getter를 쓰기에는 다소 오버킬이 될 수 있는 상태의 값을 읽고 싶을 수도 있습니다.
저는 중앙 집중식 시스템 없이 상태를 변화시키기 시작하면 혼란스러워질 수 있기 때문에 항상 일관성을 유지하기 위해 행동과 행동을 취하려고 노력합니다.
예를 들어 다음과 같습니다.user
모듈을 설정합니다.유저명만 있으면 좋을지도 모르기 때문에$store.state.user.username
하지만 저는 항상 사용자를 노출시키는 것을 선호합니다.getUser
를 통해 컴포넌트에 액세스 할 수 있습니다.user.username
.
주에 직접 액세스할 수 있는 프로는 시계입니다.
watch: {
'$store.state.user' (to, from) {
console.log('I changed!')
}
}
이를 통해 사용자 상태가 변경될 때마다 알 수 있습니다.$this.$store.dispatch('setUser', myUser)
액션에서도 똑같이 할 수 있어요.
여기서 열쇠는 일관성이 있다고 생각합니다만, 방법을 선택해 사용하는 것입니다만, 항상 베스트 프랙티스를 따르는 것을 추천합니다.
언급URL:https://stackoverflow.com/questions/47191231/why-is-state-visible-to-components
'programing' 카테고리의 다른 글
ISO C90은 C에서 선언과 코드가 혼재하는 것을 금지합니다. (0) | 2022.08.29 |
---|---|
vue.js cli 명령어 "npm run serve" 작동 방식 (0) | 2022.08.29 |
Vue 라우터 입력 전 vs 각 입력 전 (0) | 2022.08.29 |
C에서 클래스를 구현하려면 어떻게 해야 합니까? (0) | 2022.08.29 |
iOS에서 더블/플로트의 최대값은 얼마입니까? (0) | 2022.08.29 |