因此,我对构建React或Vue应用程序时传递数据的最佳方法感到困惑。
方法1)我的子组件调用了一些函数,这些函数通过API调用来获取/刷新组件上的数据。
方法2)我最近在所有可能的子组件中进行了切换,以将这些API调用置于父组件中,并且子组件调用在父组件中调用该API的函数,并将新数据作为prop传入。
这些是处理数据的首选方式吗?方法2对我来说有点干净,不可能在所有地方都可以,但是感觉到父母应该在可能的情况下负责刷新数据,但这也使孩子依赖于父母,因此我不确定
方法1
<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>
答案 0 :(得分:3)
当涉及Vue.js和React都基于的单向数据架构时,应考虑以下准则:
因此,对方法2所做的工作是长期解决方案,牢记上述准则。
答案 1 :(得分:0)
您可以在React中以两种方式传递数据。
有关详细信息,您可以在中等Passing Data Between React Components中查看这篇文章