【发布时间】:2018-07-06 11:33:20
【问题描述】:
一般来说,当我有一个多个子组件应该能够访问的变量时,我会将它们存储在我的根 Vue 元素的数据对象中,然后通过属性将它们传递给子组件。
但是,我最近开始使用 vue-router,而我的根 vue 元素仅包含一个“router-view”组件,该组件控制向用户提供哪些子组件。
下面是我的根元素的样子(我使用的是 vue-cli):
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'app'
}
</script>
<style lang="scss">
</style>
因此,我在使用 vue 路由器之前使用的通过属性将变量传递给子组件的方法似乎不再可行。
我应该如何通过 vue 路由器将数据从我的根 Vue 元素传递到我的子组件?我是否应该使用这种方法来实现访问“全局”变量的目标?
我已经阅读了几个参考使用 Vuex 进行状态管理的线程,虽然我不反对学习和使用它 - 对于我在这个阶段想要实现的目标来说感觉有点矫枉过正。
编辑(澄清问题)
我的几个子组件对本地/生产服务器进行 API 调用(取决于节点环境),我发现自己多次复制“if-else”逻辑以确定组件应该在哪个服务器进行 API 调用到。所以我认为在根元素声明一个“服务器”变量然后将其传递给需要进行 API 调用的子元素会是一种更好的方法
【问题讨论】:
标签: javascript vue.js vue-component vue-router vuex