首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuejs -如何从子路由传递参数到父路由?

Vuejs -如何从子路由传递参数到父路由?
EN

Stack Overflow用户
提问于 2017-06-19 18:09:18
回答 1查看 4.4K关注 0票数 0

我是vuejs的初学者。

我对vue-router嵌套路由的一些实践有一个问题。

以防万一,这是一个嵌套的路由配置。

代码语言:javascript
复制
const router = new Router({
    routes: [
        {
            path: '/dashboard',
            name: 'dashboard',
            component: Dashboard,
            meta: {
                requiresAuth: true
            },
            children: [
                {
                    path: 'overview',
                    name: 'Overview',
                    component: Overview,
                    meta: {
                        requiresAuth: true
                    }
                }
            ]
        }
    ]
})

如果要将数据从子路由(概述)传递到父路由(仪表板)

我该怎么处理呢?

我不希望url有任何更改(/dashboard/overview),只需要从子路由接收数据参数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-19 20:30:04

您可能希望考虑使用Vuex作为跨不同组件共享状态的一种方式(如果您是初学者,则可能不是)。

或者,您可以只在子组件中发出一个事件:

代码语言:javascript
复制
Vue.use(VueRouter);

var Parent = {
  template: '<router-view @data="onData"></router-view>',
  methods: {
    onData(data) {
      alert('Got data from child: ' + data);
    },
  },
};

var Child = {
  template: '<div><input v-model="text"><button @click="onClick">Click Me</button></div>',
  data() {
    return {
      text: 'Hello',
    };
  },
  methods: {
    onClick() {
      this.$emit('data', this.text);
    },
  },
};

var router = new VueRouter({
  routes: [
    {
      path: '',
      component: Parent,
      children: [
        {
          path: '',
          component: Child,
        },
      ],
    },
  ],
});

new Vue({
  el: '#app',
  router,
});
代码语言:javascript
复制
<script src="https://rawgit.com/vuejs/vue/dev/dist/vue.js"></script>
<script src="https://rawgit.com/vuejs/vue-router/dev/dist/vue-router.js"></script>

<div id="app">
  <router-view></router-view>
</div>

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

https://stackoverflow.com/questions/44627718

复制
相关文章

相似问题

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