(1).事件传递与值传递
1.emit发送事件传递数据
<template>
<div>
<h1>家庭资产{
{fatherM}}</h1>
<Father
:fatherM = "fatherM"
@earnMoney = "earnMoney"
/>
</div>
</template>
<script>
import Father from './Father'
export default {
name:'Mother',
components:{
Father
},
data(){
return{
fatherM:3000
}
},
methods:{
earnMoney(num){
this.fatherM += num
}
}
}
</script>
<style>
</style>
<template>
<div>
<h2>父亲资产:{
{fatherM}}</h2>
<button @click="earnMoney">赚钱</button>
</div>
</template>
<script>
export default {
name:'Father',
props:{
fatherM:Number
},
methods:{
earnMoney(){
this.$emit('earnMoney',100)
}
}
}
</script>
<style>
</style>
2.sync绑定
@update:value="value => this.fatherM = value"
value.sync="fatherM" 这是上面的语法糖,同时也实现了双向绑定
<template>
<div>
<h2>父亲资产:{
{fatherM}}</h2>
<button @click="earnMoney">赚钱</button>
<button @click="invest">投资</button>
</div>
</template>
<script>
export default {
name:'Father',
props:{
fatherM:Number
},
methods:{
earnMoney(){
this.$emit('earnMoney',100)
},
invest(){
this.$emit('update:value',1000)
}
}
}
</script>
<style>
</style>
<template>
<div>
<h1>家庭资产{
{fatherM}}</h1>
<Father
:fatherM = "fatherM"
@earnMoney = "earnMoney"
:value.sync = "fatherM"
/>
</div>
</template>
<script>
import Father from './Father'
export default {
name:'Mother',
components:{
Father
},
data(){
return{
fatherM:3000
}
},
methods:{
earnMoney(num){
this.fatherM += num
}
}
}
</script>
<style>
</style>
3.v-model绑定
<Father v-model="fatherM"/> 这是个语法糖,相当于
<Father :value="fatherM" @input="value => fatherM = value"/>
<template>
<div>
<h2>父亲资产:{
{value}}</h2>
<input type="text" :value="value" @input="onMyInput"/>
</div>
</template>
<script>
export default{
name:'hello',
props:['value'],
methods:{
onMyInput(e){
this.$emit('input',e.target.value)
}
}
}
</script>
<style>
</style>
<template>
<div>
<h1>家庭资产{
{fatherM}}</h1>
<Father
v-model="fatherM"
/>
</div>
</template>
<script>
import Father from './Father'
export default {
name:'Mother',
components:{
Father
},
data(){
return{
fatherM:3000
}
}
}
</script>
<style>
</style>
通过model来设置event/prop
model用来设置v-model默认传递的value 和input 要和props配合使用,一般props中只能接收value,但是就可以通过prop属性来设置