programing

Vuex 속성 값을 변환이 아닌 액션 내부에서 설정하는 것이 잘못되었습니까?

newsource 2022. 8. 1. 22:50

Vuex 속성 값을 변환이 아닌 액션 내부에서 설정하는 것이 잘못되었습니까?

Vuex 액션은 GET 요청을 한 다음 Vuex 속성 값을 응답으로 설정합니다.

async getUserServers({commit, state, dispatch}, userId){
    try {
        let response = await axios.get("/servers/" + userId)
        state.servers = response.data.servers
    } catch (error) {
        console.log(error)
    }
}

보시다시피 저는 상태를 응답에 맞춰 설정하기 위해 변이를 사용하지 않지만, 문서에서 상태 변경은 모두 변이를 통해 이루어져야 한다고 읽었습니다.이렇게 변경해야 할 것 같습니다.

async getUserServers({commit, state, dispatch}, userId){
    try {
        let response = await axios.get("/servers/" + userId)
        commit('setServers', response.data.servers)
    } catch (error) {
        console.log(error)
    }
}

첫 번째 코드 조각이 앞으로 몇 가지 문제로 이어질지 궁금합니다.

돌연변이는 Vue devtools를 통해 시간 경과에 따른 상태 변화를 안정적으로 추적할 수 있도록 상태 변경을 동기화하여 커밋합니다.상태를 액션에 의해 변환하는 것을 허용하면 여러 액션에서 같은 상태의 일부가 비동기적으로 변환되어 디버깅이 어려워질 수 있습니다.

언급URL : https://stackoverflow.com/questions/63441274/is-it-wrong-to-set-value-of-vuex-property-from-inside-an-action-instead-of-throu