vue 子组件修改props中的值

问题:子组件想修改父组件传来的值(props中的值)。普通的修改会报错,因为这个值是单向的,只能传进来,要是想修改就要用v-model

解决办法:用v-model

写个简单粗暴例子:

父组件

 <control :lingthData="lingthData" v-model="deviceF"></control>

 //v-model里面写上我们要传给子组件,并且还会在子组件中改变这个值

import control from '@/page/map/control'
export default {
  components: {
    control
  },
  data () {
    return {
      deviceF: true
    }
  }

子组件

<template>
    <div>
        {{device}}
        <div @click="look">改变值</div>
    </div>
</template>
<script>
export default {
  data () {
    return {
      device: this.value,  //定义一下
    }
  },
  props: ['lingthData', 'value'],//因为想要改变device,所以device要写成value,这里是写死的
  components: {
  },
  methods: {
    look () {
      this.device = !this.device
      this.$emit('input', this.device)  //这样this.device就会被修改;前面的input是固定写死的
    }
  }
}
</script>

 

具体为什么这么写,vue文档里有交待=》

https://cn.vuejs.org/v2/guide/components.html#%E5%9C%A8%E7%BB%84%E4%BB%B6%E4%B8%8A%E4%BD%BF%E7%94%A8-v-model

 

如果我写的没看懂,没关系,这里还有个线上例子=》

https://jsfiddle.net/d502zdxk/613/

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值