vue子组件修改prop的值

1.通过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>

2.通过v-model绑定数据源

父组件:

复制代码
<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>

3.通过父传子,子调用父方法传参数实现

父组件:

复制代码
<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)
      }
    }
  }
相关推荐
二闹7 分钟前
大厂前端研发岗位设计的30道Webpack面试题及解析
前端·面试
拾光拾趣录13 分钟前
实现 `this` 对象的深拷贝:从“循环引用崩溃”到生产级解决方案
前端·javascript
无羡仙15 分钟前
90%的人都在用的下拉刷新,我把它拆了!
前端·node.js
一念杂记15 分钟前
【实战系列】30分钟开发微信小程序登录&注册&绑定功能
前端·后端·微信小程序
阳焰觅鱼15 分钟前
LRU缓存
前端
福娃B17 分钟前
【CSS】面试必会—浮动布局:让元素“漂浮”的艺术
前端·css·面试
中微子18 分钟前
TypeScript 与 React:现代前端开发的黄金搭档
前端
用户25191624271119 分钟前
Canvas之颜色渐变
前端·javascript·canvas
ZzMemory20 分钟前
详解JavaScript 解构赋值:让你的代码更优雅
前端·javascript·面试
PineappleCoder21 分钟前
CSS那些你不得不懂的“潜规则”(二)
前端·css·面试