【发布时间】:2019-08-12 10:21:56
【问题描述】:
所以我对在构建 React 或 Vue 应用程序时传递数据的最佳方式感到困惑。
方法 1) 我让子组件调用函数,这些函数通过 API 调用来获取/刷新组件上的数据。
方法 2) 我最近在这些子组件中尽可能地进行了切换,以将这些 API 调用放在父组件中,子组件调用在父组件中调用该 API 的函数,并将新数据作为道具传递.
这些是处理数据的首选方式吗?方法 2 对我来说感觉更干净一些,并非在所有地方都可行,但感觉父母应该负责在可能的情况下刷新数据,但这也使孩子依赖父母,所以我不再确定.
方法一
<template>
<div>
<div v-for="(prod,index) in this.products" :key=index><
{{ prod.name }}
</div>
</div>
</template>
<script>
data() {
return {
products: []
}
},
mounted() {
this.getProducts();
},
methods: {
getProducts: function() {
axios.post('api/########', {
this.products: response.data,
})
}
</script>
方法 2
<template>
<div>
<div v-for="(prod,index) in products" :key=index><
{{ prod.name }}
</div>
</div>
</template>
<script>
props: {
products: {type: Array}
}
methods: {
getProducts: function() {
this.$parent.handleGetProducts()
*** PARENT WOULD HAVE FUNCTION HANDLEGETPRODUCTS TO MAKE THE API CALL AND PASS DOWN AND REFRESH THE PROPS GOING INTO THIS COMPONENTU**
}
</script>
【问题讨论】:
-
你能展示一些示例代码吗?这将有助于我们更好地回答您的问题。
-
是的,刚刚……抱歉