【发布时间】:2017-07-27 13:38:01
【问题描述】:
我想知道如果道具来自后端的响应,那么在 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。
我知道两种处理方法:
<ChildComponent :person="person" v-if="person"></ChildComponent>- 注意
personprop in,每次更改人员时,重新运行子组件中的 getName() 方法或将 name 设置为计算属性。
所以问题又来了,他们是处理这个问题的正确方法吗?还有其他一些方法,比如使用 Vuex 吗?
谢谢
【问题讨论】:
标签: vue.js