父组件传递一个对象,子组件修改他,视图是否会刷新
1.传输组 使用push 变化 返回的是新的数组对象
2.传对象 只增加一个属性 不会改变 必须返回一个新的地址
3.2的行为就像
arr = [0,1]
arr[3]=2
这种形式是不可能刷新视图的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="app">
<parentcom :change-data="changeData" :change-new-data='changeNewData' :demo="demo" />
</div>
<template id="parent">
<div>
<p>{{demo}}</p>
<p @click="changeNewData">changeNewData</p>
<p @click="changeData">changeData</p>
</div>
</template>
</body>
<script type="text/javascript">
var parentcom = {
template: "#parent",
props: ['demo', 'changeData', 'changeNewData'],
mounted() {
console.log("parent", this.$parent)
}
}
//根组件
new Vue({
el: "#app",
data: {
demo: {
a: 5
}
},
methods: {
changeData() {
this.demo['c'] = 7;
console.log(this.demo)
},
changeNewData(){
this.demo = Object.assign({}, this.demo,{
b: 6
})
console.log(this.demo)
}
},
components: {
parentcom: parentcom
},
})
</script>
</html>