0
Vuex 반응성이 작동하도록 설계된 방법에 대한 질문이 있습니다. 나는 다음 저장소에 저장이 있습니다 Vuex 상태 변경 전파
// state
state: {
database: {
tables: []
}
}
// mutator
ADD_TABLE(state, {table}) {
state.database.tables.push(table);
}
ADD_TABLE
돌연변이 VUE 구성 요소와 vuex 시계 개체가 직접 변경할 경우에만 반응하고 중첩 된 속성의 변화에 반응하지 발생 그래서
// after the mutation happens
store.watch(state => state.database, change => console.log(change)) // this doesn't log
store.watch(state => state.database.tables, change => console.log(change)) // this does
원하는 동작입니까? 아니면 내 코드가 손상 되었습니까?
당신이 추가 시도 할 수처럼 뭔가 변경 될 수 있습니다'{깊은 : TRUE}'당신의 감시자에 세 번째 인수로 그게 효과가 있는지보십시오. –
그래, 그게 작동하지만 여전히, 나는 여기에 대한 빠른 설명을 위해 당직자를 추가했습니다. 실제 코드에서는 데이터/계산 된 속성에 바인딩되며 구성 요소는 변경 내용에 반응하지 않습니다. – korun
Vue에서 관찰자가 작동하는 방식입니다. 특정 속성을 볼 경우 Vue의 기본값은 얕은 시계입니다. 모든 것을보고 싶다면 깊은 시계를 지정해야합니다. 깊이를 지정해도 해결할 수없는 실제 문제의 예를 제공 할 수 있습니까? – Bert