Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js vue中的对象数据属性是否需要显示所有属性?_Vue.js - Fatal编程技术网

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
就足够了。