首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Vue中的非父子组件之间共享数据

如何在Vue中的非父子组件之间共享数据
EN

Stack Overflow用户
提问于 2016-01-21 22:01:11
回答 1查看 5.3K关注 0票数 14

我有3个组件(get-users,get-projects,get-tasks) -每个组件都包含一个按钮,该按钮触发一个ajax请求来检索一些数据。我希望从ajax请求返回的数据显示在页面上的第四个独立组件中(show-result)。例如:

代码语言:javascript
复制
<div class="row">
    <div class="col-md-6>
        <get-users></get-users>
        <get-projects></get-projects>
        <get-tasks></get-tasks>
    </div>
    <div class="col-md-6>
        <show-results></show-results>
    </div>
</div>

get-users组件:

代码语言:javascript
复制
<script>
export default {
    template: require('./get_users.template.html'),

    data: function() {
        return {
            userList: ''
        }
    },

    methods: {
        getUsers(e) {
            e.preventDefault();

               this.$http.get('api/getusers').then(function (response) {
                    this.userList = response.data.users;   // How can I also pass this to the show-results component?         
            })
        }
    }
}
</script>

Vue实例/去化

代码语言:javascript
复制
var Vue = require('vue');

Vue.use(require('vue-resource'));

import getUsers  from './components/get_users.vue';
import getProjects  from './components/get_projects.vue';
import getTasks  from './components/get_tasks.vue';
import showResults  from './components/show_results.vue';


   new Vue ({
    el: '#app',

    components: { GetUsers, GetProjects, GetTasks, ShowResults },

})

因为显示结果组件不是父/子关系的一部分,所以我不能使用$broadcast或$dispatch方法。

在ajax promise完成时,是否可以将数据从一个组件传递到另一个组件?

EN

回答 1

Stack Overflow用户

发布于 2019-04-23 08:23:02

如果您想要在许多嵌套组件之间共享数据,请使用此小plugin

代码语言:javascript
复制
Vue.use(VueGlobalVariable, {
  globals: {
    user: new User('testuser'),
    ....
  },
});

在任何组件中使用$user

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34925841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档