【Web前端问题】vue中用++运算符修改props值与+1修改props的区别?代码如下:

在学习vue过程中,遇到如下问题,望道友帮帮忙。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>中央事件bus</title>

</head>

<body>

<div id="app">

<div>{{coun}}</div>

<addbtn :count="coun"></addbtn>

<subbtn :count="coun"></subbtn>

</div>

<script src="./vue.js"></script>

<script>

var busVM = new Vue();

var vm = new Vue({

el:"#app",

data:{

coun:0

},

components:{

'addbtn':{

template:`<button @click="addcount">+</button>`,

props:["count"],

methods:{

addcount(){

busVM.$emit("changeCount",++this.count);

}

}

},

'subbtn':{

template:`<button @click="subcount">-</button>`,

props:["count"],

methods:{

subcount(){

busVM.$emit("changeCount",this.count-1);

}

}

}

},

mounted:function(){

busVM.$on("changeCount",function(val){

this.coun = val

}.bind(this))

}

});

</script>

</body>

</html>

图片描述

在子组件中用++修改时会报如上错误,而用+1就不会,为什么呢?

回答:

报错信息很直接呀,说的是你压根就不应该在子组件里修改prop,因为它们反正都会被父组件覆盖掉。以vue的实现原理来看,没有必要地修改状态会拖累性能。

vue认为这种行为是新手常出现的bug,所以报警告。要是知道自己在干什么的话,可以不管。

以上是 【Web前端问题】vue中用++运算符修改props值与+1修改props的区别?代码如下: 的全部内容, 来源链接: utcz.com/a/137203.html

回到顶部