任何人都可以让我理解以下情况,因为我尝试搜索网络并且找不到任何信息。
我有下面的代码,因为infox为null,所以无法使用。但是,当我将其更改为“ infox: []
”时,它可以正常工作。我需要了解为什么会这样吗?
data:{
infox:null
}
methods: {
loadmore: function () {
axios.get(this.url)
this.infox.push(...response.data);
}}
接下来,我想了解... response.data中的三个点代表什么,为什么没有三个点就无法以下面的方式进行编码,这更有意义。如果您能指出我的出处,我将不胜感激。
methods: {
loadmore: function () {
axios.get(this.url)
this.infox.push(response.data);
}}
下面是我的JSON数据
[
{
"Categories": "Fashion",
"Clicked": 30,
"EndDate": "2019-08-21",
"HomepageSpotlight": "No",
"ImageMainPage": "/static/images/fashion16.jpg",
"MainPage": "Yes",
"Mainhomepage": "No",
"Rating": 5,
"SlugTitle": "buy-clothes-with-50-Off",
},
{
"Categories": "Fashion",
"Clicked": 145,
"EndDate": "2019-08-21",
"HomepageSpotlight": "No",
"ImageMainPage": "/static/images/fashion10.jpg",
"MainPage": "Yes",
"Mainhomepage": "No",
"SlugTitle": "get-upto-60-off-on-jeans",
}
]
最佳答案
在您的示例中,this.infox
变量引用了infox:null
,所以它不起作用,因为null
显然没有方法push
。
当将infox
更改为Array
之类的infox: []
时,它会起作用,因为Array
确实具有方法push
。
三点运算符是ES6中的一项新功能,您可以在许多文章中了解它,例如:https://dev.to/sagar/three-dots---in-javascript-26ci
在您的情况下,this.infox.push(...response.data)
将data
的每个元素填充到infox
数组中。您的data
是它自己的数组,因此它将data
数组复制到infox
数组。this.infox.push(response.data)
字符串将导致将所有data
数组放入infox
数组的一个元素中。