所以,我有一個包含多個子組件的應用程序。基本上是一個電子表格。如何獲取Vue.js裏面的兒童組件
我希望能夠計算任何單元格更改時的組件總和。我想通過在傳播更改事件時緩存它們來存儲單元格的所有值。但是,這是最好的方式嗎?有沒有更好的方式來動態抓住孩子?我明白props
是發送數據的方式,但我如何提取數據?
這是HTML:
<html>
<head>
</head>
<body>
<span id="calculator">
<template v-for="i in 5">
<cell v-bind:index="i" v-on:total="total"></cell>
</template>
{{ subtotal }}
{{ cells }}
</span>
<script src="vue.js"></script>
<script src="app.js"></script>
</body>
</html>
而且app.js:
Vue.component('cell', {
template: "<input v-model='value' v-on:change='total' size='10' type='text'/>",
props: {
index: Number
},
data: function() {
return {
value: 0
};
},
methods: {
total: function() {
console.log("Value is now: " + this.value + " for index: " + this.index)
this.$emit('total', this.value, this.index)
}
}
});
var app = new Vue({
data: {
subtotal: 0,
cells: []
},
el: "#calculator",
methods: {
total: function(value, indexPlusOne) {
var index = indexPlusOne-1;
var v = parseInt(value);
Vue.set(this.cells, index, v);
console.log("Inside the total function: " + v + " " + index);
this.subtotal = 0;
for(var i = 0; i < this.cells.length; i++) {
if(this.cells[i]) {
this.subtotal += this.cells[i];
}
}
}
}
});
這是Vuex的完美用例。 –