vue2.x的变化之一:禁止修改props

一、说明
在vue1.x中,可以在子组件中改变prop的值,在vue2.x中已被废弃。官方文档解释如下:

组件内修改 prop 是反模式 (不推荐的) 的。比如,先声明一个 prop ,然后在组件中通过 this.myProp = 'someOtherValue' 改变 prop 的值。根据渲染机制,当父组件重新渲染时,子组件的内部 prop 值也将被覆盖。

二、解决方法

  • 通过data属性,用prop去设置一个data属性的默认值
  • 通过computed属性

方法1的示例:

data() {
  return {
    selectType_c: this.selectType,
    onlyContent_c: this.onlyContent
  }
},
props: {
  selectType: {
    type: Number,
    default: 1
  },
  onlyContent: {
    type: Boolean,
    default: false
  }
}

然后在method中修改data中的值而不是props

你可能感兴趣的:(vue2.x的变化之一:禁止修改props)