通过v-model使 得父子组件的 某个变量保持一致会报错
1.有没有解决这个报错的方法
2.或者有没有更好的简便方法实现上述操作
vue.js:634 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "value"
found in
---> <MyCpn>
<Root>
代码如下
<!-- <script src="./js/vue.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="box1">
<p> 父组件的{{id}}</p>
<my-cpn v-model="id"></my-cpn>
</div>
<template id="tpl">
<div>
<p>组件value:{{value}}</p>
<button @click="value++">组件value++</button>
</div>
</template>
<script>
const MyCpn = {
template: '#tpl',
props: {
value: {
type: Number,
}
},
watch: {
value() {
this.$emit('input', this.value)
}
}
}
Vue.component('MyCpn', MyCpn)
const app = new Vue({
el: "#box1",
components: {
MyCpn
},
data: {
id: 19216811
}
})
</script>
在子组件里不直接改父组件的id,再加一个变量做中间值,改动较小