반응형
Vue - 중첩된 속성의 기본값
객체의 중첩된 속성의 기본값을 설정하려면 어떻게 해야 합니까?prop
?
Vue는 첫 번째 수준 객체의 경우에만 중첩된 속성의 기본값을 구문 분석합니다.prop
이undefined
.
예제:
Vue.component('example', {
props: {
options: {
type: Object,
default: function() {
return {
nested: {
type: Object,
default: function(){
return 'default value'
}
}
}
}
}
})
보아하니 Vue는 첫 번째 수준의 Object prop가 정의되지 않은 경우에만 중첩된 속성의 기본값을 구문 분석합니다.
네, 외부 객체가 없으면 내부 속성이나 중첩 속성을 가질 수 없기 때문에 의미가 있습니다.
그래서 디폴트로 설정하면 더 읽기 쉬울 것 같아요.{}
첫 번째 레벨 오브젝트의 emtpy 오브젝트입니다.아래 예시와 같이 정의되지 않은 오브젝트 또는 null에 대해 독자적인 방어 검증을 실시해야 합니다.
<script>
export default {
props: {
option: {
type: Object,
default: () => {},
required: false
}
},
computed: {
optionReceived: function () {
const defaultNestedValue = 'Some default value'
const option = this.option.nested || defaultNestedValue;
return option;
}
}
}
</script>
항상 데이터 구조를 사용하기 쉽고 가능한 한 평평하게 만드는 것이 좋다고 생각합니다.왜냐하면 Vue에 있는 네스트 소품들은 절대 좋은 선택이 아니기 때문이다.
가정하다options
Vue 컴포넌트에 기재되어 있습니다.
예제:
props: {
options: {
bookAttributes: {
colorAttributes: { coverColor: 'red', ribbonColor: 'green' },
sizeAttributes: { coverSize: 10, ribbonSize: 2 },
...
}
}
}
이렇게 납작하게 만들면 더 잘 이해할 수 있어요.
props: {
coverSize: 10,
coverColor: 'red',
ribbonColor: 'green,
ribbonSize: 2 ...
}
그러면 여러분과 여러분의 동료들은 여러분의 컴포넌트를 다음과 같이 사용할 수 있습니다.
<your-component>
coverSize="15"
coverColor="blue"
ribbonColor="red"
ribbonSize="3"
</your-component>
행운을 빌고 잘 지내길 바라.
언급URL : https://stackoverflow.com/questions/46720152/vue-default-values-of-nested-properties
반응형
'sourcecode' 카테고리의 다른 글
SPI및 API의 차이? (0) | 2022.08.17 |
---|---|
GDB에서 특정 중단점이 히트했을 때 특정 액션을 수행하려면 어떻게 해야 합니까? (0) | 2022.08.17 |
C의 char 문자열을 수정할 수 있습니까? (0) | 2022.08.17 |
"실험 구문 'jsx'에 대한 지원이 현재 활성화되지 않았습니다." vue 및 jest를 사용합니다. (0) | 2022.08.17 |
어레이가 변경되어 v-key가 지정된 경우에도 VueJ가 목록을 다시 렌더링하지 않음 (0) | 2022.08.17 |