Vue.js vue中的对象数据属性是否需要显示所有属性?
假设我是这样开始的:Vue.js vue中的对象数据属性是否需要显示所有属性?,vue.js,Vue.js,假设我是这样开始的: data() { return { user: {} } } 后来。。。我进行API调用: let response = await this.axios.get("/api/users/1.json"); this.user = response.data 这是将API调用中的数据分配给this.user的正确方法吗 是否需要首先定义user的所有属性?否,您不必声明user的所有属性。只要在数据中有user和undefined不同的值
data() {
return {
user: {}
}
}
后来。。。我进行API调用:
let response = await this.axios.get("/api/users/1.json");
this.user = response.data
这是将API调用中的数据分配给this.user的正确方法吗
是否需要首先定义
user
的所有属性?否,您不必声明user
的所有属性。只要在数据中有user
和undefined
不同的值就足够了
当属性位于数据
中时,Vue将用get
ter和set
ter替换该属性。当您这样做时:
this.user = newValue;
实际上,您正在调用一个setter,它将newValue
的所有属性映射到getter本身
在官方文档中,您可以在页面上找到更多信息
看看下面。检查演示和显示已创建(并在控制台中打印)对象的图像中的说明
var-app=新的Vue({
el:“#应用程序”,
数据:{
其他:空,
用户:空
},
安装的(){
此用户={
姓名:'鲍勃',
年龄:10
}
}
})
console.dir(应用程序)
{{其他}}
{{user}}
不,您不需要在其中添加属性,您可以这样做。创建一个方法并在其中创建axios:
data() {
return {
user: {}
}
},
methods: {
axiosCall: function (){
axios.get("/api/users/1.json").then(response =>{
this.user = response.data
})
}
}
如果使用新对象替换
user
(如示例中所示),则Vue将对该对象应用反应性。您不需要在原始值上定义相同的字段,只要user
属性本身是在data
中定义的,这就无关紧要了。只要有user:null
就足够了。