求解决Vue关于响应性属性的问题,折腾一天木有结果
先贴代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>货单详情</title>
</head>
<body>
<div id="app">
<div id="main">
{{waybill.qwert}}
</div>
</div>
</body>
<script src="~/js/vue@2.6.12/dist/vue.js"></script>
<script src="~/js/axios@0.21.1/dist/axios.js"></script>
<script>
var app = new Vue({
el: '#app',
data: function () {
return {
waybill: {
},
}
},
methods: {
doQuery:function () {
axios.post("@Url.Content("~/Waybill/GetWaybillInfo")", { waybill_id: 26 })
.then(response => {
this.waybill = response.data.waybill;
this.waybill.qwert = "aa1";
});
//this.waybill.qwert = "aa2";
},
},
mounted() {
this.doQuery();
}
})
</script>
</html>
--------------------------------------------------------------------
按照我的理解,qwert不是响应式属性,逻辑上来说,不应该被显示的!但事实在我的浏览器,aa1显示了!把ajax请求的代码注释掉,aa2是不能显示的
如果将 this.waybill = response.data.waybill; 这个注释掉,则 aa1 不显示,为什么会这样?
我知道应该是用Vue.set来设置,但我发帖的目的是想知道为什么以上代码可以显示aa1。