vue.js - 使用 vue-router 在组件之间传递数据
问题描述
有很多问题的标题与我的类似,但这就是我的问题所在。让我们举一个非常常见的案例,我正在构建一本食谱书。我正在遍历我的食谱并创建指向该Recipe.vue
组件的链接:
<router-link v-for="recipe in recipes" :to="{path: `/recipe/${recipe.title}`">
<a>{{recipe.id}}</a>
</router-link>
现在据我了解,解决方案很少:1.设置props:true
并传递道具:
<router-link v-for="recipe in recipes" :to="{name: 'Recipe', params: {recipe}}">
<a>{{recipe.title}}</a>
</router-link>
设置
Recipe
为子组件并将数据作为 regur parent=>child 数据传输传递Recipe
使用 Vuex 和状态管理然后从组件中的存储中“撤回”数据将 id 传递给
Recipe
组件,然后在其mounted()
执行 http 请求时获取特定项目的数据。
我发现很难理解这里的最佳实践以及我应该为我的生产环境选择什么。
我内心的声音说 3 号 - 状态管理是多余的,而 4 号是不必要的 api 调用,因为我已经有了我需要的数据。
关于我应该在以下基本情况下使用哪种方法的任何建议:第一个组件是一个食谱列表,然后从它导航到一个仅用于显示食谱数据的组件?
解决方案
推荐阅读
- node.js - 尝试在 Publisher 中进行高级自定义 UI 时如何解决 NPM 错误
- python - 无法转换 numpy.object_ 类型的 np.ndarray
- python - 如何解决错误 TypeError: unsupported operand type(s) for /: 'Dimension' and 'float'
- c# - 进行一些图形调用后返回成功/错误响应
- javascript - 未调用模拟 res.status 上的快速控制器 getAllUsers 函数的开玩笑单元测试失败?
- jquery - Google Places api 按类型获取地址组件
- azure - Azure 定价 REST API 中的字段是什么意思?
- c# - textBox3 特定密钥以创建帐户
- c - 具有动态内存的 C 反向字符串
- excel - VLOOKUP 准确值和最接近的日期