子组件更改父组件porps的值
场景:父传值给子组件,子组件改变父元素传过来的prop值
实现方法1
通过父传子,子调用父方法传参数实现
父组件
<template>
<child-view :num="num" @updateNum="updateNum"></child-view>
</template>
<script>
import childView from './assembly/child'
export default {
components: {childView},
data() {
return {
num: 2
}
},
methods: {
updateNum(num){
this.num = num
}
}
</script>
子组件
<template>
<div>
<p>父传过来的值:{{num}}</p>
<button @click="changeNum">加一</button>
</div>
</template>
<script>
export default {
name: 'child',
props:{
num: {
type:Number,
default: 0
}
},
methods:{
changeNum(){
this.$emit("updateNum",this.num + 1)
}
}
}
实现方法2
通过.sync修饰符以及$emit配合update:实现
父组件
<template>
<child-view :num.sync="num"></child-view>
</template>
<script>
import childView from './assembly/child'
export default {
components: {childView},
data() {
return {
num: 2
}
}
}
</script>
子组件
<template>
<div>
<p>父传过来的值:{{num}}</p>
<button @click="changeNum">加一</button>
</div>
</template>
<script>
export default {
name: 'child',
props:{
num: {
type:Number,
default: 0
}
},
methods:{
changeNum(){
this.$emit("update:num",this.num + 1)
}
}
}
</script>
实现方法3
这种方法针对v-modal绑定一个数据源
父组件
<template>
<child-view v-modal="num"></child-view>
</template>
<script>
import childView from './assembly/child'
export default {
components: {childView},
data() {
return {
num: 2
}
}
}
</script>
子组件
<template>
<div>
<p>父传过来的值:{{num}}</p>
<input type="text" :value="value" @input="$emit('input',$event.target.value)">
</div>
</template>
<script>
export default {
name: 'child',
props:["value"]
}
</script>
作者:【cica】
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

浙公网安备 33010602011771号