Vue将props值实时传递 并可修改

Posted mankii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue将props值实时传递 并可修改相关的知识,希望对你有一定的参考价值。

我们都知道props值是只读的,子组件内不可直接修改,会报错滴

但是很多时候这个值是需要子组件主动修改的,一般我们会使用this.$emit()去修改,但比较麻烦

下面这种方式可以实现:

1、父组件实时修改props值时,子组件可以接收到改变

2、子组件可主动修改该值

<div>{{RealValue}}</div>
  props: [ "value" ],
  watch: {
    value (v) {
      this.RealValue = v
    }
  },
  data () {
    return {
      RealValue: this.value
    }
  }

原理很简单,就是使用一个RealValue作为实际显示的参数,并且使用watch实时把value值传给他

PS:这里的值是字符串格式,如果value是对象或者数组,watch处要写成:

  watch: {
    value:{
       deep: true,
       handler(v) {
          this.RealValue = v
       }
    }
  },    

 

以上是关于Vue将props值实时传递 并可修改的主要内容,如果未能解决你的问题,请参考以下文章

Vue组件中的jQuery插件:无法将值传递给prop

React组件三大核心属性: state、props、refs

子组件中修改props的正确方式

vue中prop 验证 和默认值

vue props 单项数据流

vue中子组件间接修改父组件传递过来的值