반응형
Vue 구성 요소 데이터 기능 - 이 비어 있음
Vue.js 컴포넌트는 다음과 같이 정의되어 있습니다.
module.exports = Vue.component('folder-preview', {
props: ['name', 'path', 'children', 'open'],
template: `...
`,
methods: mapActions([
]),
computed: mapState([
]),
data: ()=> {
console.log(this);
return {
collapsed: (this.open !== 'true')
}
}
});
기본적으로, 저는 계속collapsed
컴포넌트의 로컬 데이터이지만 프로펠러에 전달된 값을 초기값으로 삼습니다.하지만, 그것은...this.open
항상 정의되어 있지 않습니다.실제로 console.loggingthis
빈 물체를 출력하는데 왜 그랬는지 모르겠어요
제가 뭘 잘못 알고 있는 건가요?
코드상의 문제가 미묘합니다.데이터를 화살표 함수로 선언했습니다.
이 질문에서 설명한 바와 같이 화살표 기능은this
정의의 맥락에서 보면, 일반 함수가this
콜의 컨텍스트로부터.만들기data
화살표 기능은 컴포넌트 스코프가 올바르게 수신되지 않음을 의미합니다.
범위를 지정하지 않는 일반 함수로 선언된 경우this
소등, 컴포넌트는 정상적으로 동작합니다.
Vue.component('sample', {
props: ['open'],
template: '<div>{{collapsed}}</div>',
data() {
return {
collapsed: this.open !== 'true'
}
}
})
new Vue({
el: '#app'
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
<sample open="true"></sample>
</div>
언급URL : https://stackoverflow.com/questions/46230254/vue-component-data-function-the-is-empty
반응형
'programing' 카테고리의 다른 글
Jest로 vuex 모의, 유명한 getters (0) | 2022.07.28 |
---|---|
vuetify에서 스크롤 가능한 v-list를 생성하는 방법 (0) | 2022.07.28 |
이 표현은 무엇을 의미하며 왜 컴파일됩니까? (0) | 2022.07.28 |
Vue CLI: 모듈 '../package를 찾을 수 없습니다.npm 설치 후 json 오류 발생 (0) | 2022.07.28 |
다른 컴포넌트에서 App.vue에 액세스하는 방법 (0) | 2022.07.28 |