我想知道如果道具来自后端的响应,什么是处理Vue.js道具的正确方法?什么是正确的方式来处理Vue.js道具从后端的响应
好吧,让我们说,孩子组件具有prop
称为person
。一个name
是人的对象。
<template>
{{ person.name }}
<template>
<script>
export default {
name: 'ChildComponent',
props:['person'],
created(){
this.getName();
},
data(){return{name:''}},
methods:{
getName(){
this.name = this.person.name;
}
}
</script>
父组件是这样
<template>
<ChildComponent :person="person"></ChildComponent>
<template>
<script>
export default {
name: 'ParentComponent',
created(){
this.getPerson();
}
data(){
return {
person: null
}
},
methods:{getPerson(){
// send request to server or api then update name
sendrequest().then(person => { this.person = person});
}}
</script>
起初,之前得到的回应,会有一个警告can't get name from person
。 我知道2层的方法来处理这个问题:
<ChildComponent :person="person" v-if="person"></ChildComponent>
- 手表
person
支撑在,每个人改变时,重新运行childcomponent的getName()方法或设置名称作为计算属性。
因此,这里的问题再一次,他们在处理这个正确的方法是什么?还有其他一些方法,如使用Vuex?
Thx