console
const TestCom = Vue.component('TestCom', {
props: ['propsA','num1','num2'],
template:
`
<div>
<div>TestCom组件
<input name="num1" :value="num1" @change="setNum1"/>
<input name="num1" :value="num2" @change="setNum2"/>
</div>
<div class="test_class">子组件propsA: {{propsA}}</div>
<button @click="sum">求和按钮</button>
</div>
`,
data: function () {
return {
num1:this.num1,
num2:this.num2,
}
},
methods: {
sum:function (){
this.$emit('setPropsA',(Number(this.num1)+Number(this.num2)))
},
setNum1:function(e){
this.num1 = e.target.value
},
setNum2:function(e){
this.num2 = e.target.value
},
},
})
const app = new Vue({
el: '#app',
components: { TestCom },
template:
`
<div class="app">
父组件:{{propsA}}
<TestCom :propsA="propsA" @setPropsA="setPropsA" :num1="10" :num1="100"/>
</div>
`,
data: function () {
return {
propsA: '外部的参数',
}
},
mounted() {
},
computed: {
},
methods: {
setPropsA:function (num){
this.propsA = num
}
}
})
<div id="app"></div>
.test_class{
font-size: 24px;
color: rgb(248, 120, 0);
}