반응형
vue: 컴포넌트에 전달된 오브젝트를 무효로 만들려면 어떻게 해야 합니까?
내 컴포넌트에는 다음 컴포넌트의location
로서 반대하다.props
제가 넘긴 논쟁은locations[index]
에서 선택한 항목입니다.locations
어레이를 설정합니다.
단, 컴포넌트는 다음 경우에 반응할 수 없습니다.index
바꾸다.데모에서 볼 수 있듯이 버튼을 클릭하면 JSON이 변경되지만 컴포넌트는 갱신할 수 없습니다.
컴포넌트를 반응시키는 가장 좋은 방법은 무엇입니까?
당신의.location
컴포넌트에 입력되어 있다.province
그리고.city
의 데이터 속성mounted
후크만언제?location
프로포트의 변경,mounted
훅이 다시 호출되지 않기 때문에 오래된 데이터가 남습니다.
대신 계산된 속성을 사용합니다.
computed: {
province() {
return this.location.province;
},
city() {
return this.location.city;
}
}
만약 당신이 정말로 필요로 한다면province
그리고.city
데이터 속성(계산 속성이 아님)이 되려면 다음 정보를 확인해야 합니다.location
prop: 속성을 갱신합니다.
data() {
return {
province: null,
city: null
}
},
watch: {
location: {
immediate: true,
handler(loc) {
this.province = loc.province;
this.city = loc.city;
}
}
}
소품에 중첩된 항목location
반응하지 않고 lodash deepClone과 같은 것을 사용해야 합니다.
<location :location.sync="_.deepClone(loc)"></location>
그게 다야, 감시자나 다른 건 필요 없어
언급URL : https://stackoverflow.com/questions/51054508/vue-how-to-make-the-object-passed-to-component-reactive
반응형
'source' 카테고리의 다른 글
공백으로 문자열을 분할하는 방법 (0) | 2022.08.25 |
---|---|
올바른 사용: vuetify 대화 상자를 사용한 외부 (0) | 2022.08.25 |
Intelij IDEA에서 접힌 패키지 체인을 확장하는 방법 (0) | 2022.08.24 |
int에서 String으로 변환하려면 어떻게 해야 하나요? (0) | 2022.08.24 |
if-else 블록에서 'if(0)' 블록의 용도는 무엇입니까? (0) | 2022.08.24 |