한 Vue 구성 요소에서 다른 Vue 구성 요소로 계산된 매개 변수를 전달하는 방법
하나 있어.app.js
세 개의 Vue 구성 요소와 vue 인스턴스를 포함하는 파일.처음 두 구성 요소에서 사용자는 값을 입력한다.세 번째 구성 요소는 간단한 계산을 하고 결과를 표시하도록 되어 있다.
아래 발췌한 코드에서 두 번째 구성요소("비용 입력")와 세 번째 구성요소("결과 출력")를 볼 수 있다.보시다시피, 나는 두 번째 구성 요소에서 나온 파라미터를 사용하여 구성 요소 내부로 사용하려고 하지만, 그것은 잘못된 것이며, 작동하지 않고 어떻게 해야 할지 모르겠다.나는 계속 자문한다: 동일한 Javascript 파일 내에 있는 여러 구성 요소에 걸쳐 이러한 값을 "액세스"하고 읽는 것이 어떻게 그렇게 어렵거나 불만족스러울 수 있는가?
// Revenue Input Component #1
...
// Cost Input Component #2
Vue.component('cost-input', {
data: function () {
return {
durationDays: "10",
costRate: "160",
numberOfExperts: "1"
}
},
computed: {
developmentCost: function(e) {
let dc = this.durationDays * this.costRate * 8 * this.numberOfExperts;
//return currencyFormat(c);
//console.log(c);
return dc;
}
},
template: ...
})
// Result Output Component #3
Vue.component('result-output', {
data: function () {
return {
revenuesFirst: "",
developmentCost: ""
}
},
computed: {
calculatedProfits: function(e) {
let cp = this.revenuesFirst - this.developmentCost;
//return currencyFormat(c);
//console.log(cp);
return cp;
}
},
template: ...
})
//Vue instance
let app = new Vue({
el: "#app",
});
내가 어떻게 재사용을 하는지 누가 좀 도와 줄래?developmentCost
(그로부터) 결과Cost Input Component #2
)를 세 번째 구성요소로 계산하시겠습니까?
나는 "프로포즈", "수입", "수출", "vuex"에 대해 읽었지만 점을 연결할 수 없다.이러한 모든 예와 안절부절못은 별도의 구성 요소 파일을 기반으로 하지만, 내 경우에는 모든 것이 하나의 구성 요소 내에서 이루어진다.app.js
파일
여기 내 코드펜에 대한 링크가 있다: https://codepen.io/bauhausweb/project/editor/ZqnkEO 왼쪽의 "연간 지불"을 선택하면 "수익"이 잘 계산되고 오른쪽의 "비용"도 잘 계산된다는 것을 알 수 있다.내가 달성하고자 하는 것은 하단의 "이익" 구성요소가 "구성요소 #1 - 구성요소 #2", "수익 - 비용"의 결과를 표시한다는 것이다.
나는 너의 도움에 감사하고 호기심 많으나 진실된 Vue 신입생을 위해 시간을 내주었다.
당신이 할 수 있는 일은 그 물건을 보관하는 것이다.developmentCost
Vue 루트 구성 요소의 값 및 이를 다음과 같이 전달prop
에게result-output
구성 요소
그럼 감시자를 쓰시고v-model
값을 동기화하기 위해
Vue.component('cost-input', {
data: function () {
return {
durationDays: "10",
costRate: "160",
numberOfExperts: "1"
}
},
computed: {
developmentCost: function(e) {
let dc = this.durationDays * this.costRate * 8 * this.numberOfExperts;
//return currencyFormat(c);
//console.log(c);
return dc;
}
},
watch: {
developmentCost: {
handler: function (value) {
this.$emit("input", value);
},
immediate: true
}
},
template: ...
})
Vue.component('result-output', {
props: ["developmentCost"],
data: function () {
return {
revenuesFirst: ""
}
},
computed: {
calculatedProfits: function(e) {
let cp = this.revenuesFirst - this.developmentCost;
//return currencyFormat(c);
//console.log(cp);
return cp;
}
},
template: ...
})
let app = new Vue({
el: "#app",
data: {
developmentCost: ""
}
});
<cost-input v-model="developmentCost"></cost-input>
...
<result-output :development-cost="developmentCost"></result-output>
'programing' 카테고리의 다른 글
Vue 클로징 구성 요소 반환 시 프로펠러가 직접 변질되지 않도록 주의 (0) | 2022.05.19 |
---|---|
Laravel 5.3에서 Vue.js 2.0 구성 요소에서 외부 html 템플릿을 사용하는 방법 (0) | 2022.05.19 |
부트스트랩-vue 입력 번호 Vue.js의 최대 길이 (0) | 2022.05.19 |
Vuejs - 인스턴스에 정의되지 않은 계산된 속성 (0) | 2022.05.19 |
.o 파일 대 .a 파일 (0) | 2022.05.19 |