javascript - Vue.js 中的同级组件与 vue-router ?

标签 javascript vue.js

我有一些组件映射到多个不同的路由,我想知道为每个路由创建的组件在数据传递方式方面是否被视为同级组件?目前尚不清楚哪个组件是该结构中的父组件:

PageOne = Vue.extend( {
   template: "#page-one"
})
PageTwo = Vue.extend({
   template: "#page-two"
})
Home = Vue.extend({
  template: "#home"
})
var router = new VueRouter()
router.map({
  '/': {
    component: Home
  },
 '/PageOne': {
   component: PageOne
  },
'/PageTwo': {
  component: PageTwo
 }
})


var App = Vue.extend({})
router.start(App, "#app")

因此,如果我想将数据从 Home 路由传递到 PageOne,我是否需要使用全局事件总线,或者我可以使用 props 来传递数据从一条路线到下一条路线? 这是一个演示:http://codepen.io/p-adams/pen/kXwxRR

最佳答案

您应该使用 Vuex 的全局事件总线或状态管理,或者将它们设置为嵌套路由 ( http://router.vuejs.org/en/nested.html ):

router.map({
  '/': {
    component: Home,
    subRoutes: {
      '/PageOne': {
        component: PageOne
      },
      '/PageTwo': {
        component: PageTwo
      }
    }
  }
}) 

如果你这样做,你可以将 props 传递给你的 <router-view> :

<div id="app">
  <router-view :foo="bar"></router-view>
</div>

http://router.vuejs.org/en/view.html

关于javascript - Vue.js 中的同级组件与 vue-router ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38230990/

相关文章:

javascript - 从 Meteor 中的 2 个集合发布(列出喜欢帖子的每个用户)

javascript - WebRTC。不显示视频

javascript - 如何自定义nuxt默认的html模板

javascript - 创建一个在所有页面上显示的通用标题

php - match() 函数和匹配变量

javascript - TinyMCE 和 Vuejs 作为组件

webpack - 当我在浏览器中运行 `index.html` 时无法加载 dist 文件

Eclipse 无法在网页编辑器中打开 .vue 文件

node.js - 使用webpack根据node环境使用特定文件

javascript - 这是 javascript eval 的好用处吗?