javascript - 使用 vue-router 将查询绑定(bind)到 props

标签 javascript vue.js vuejs2 vue-router

是否可以以声明方式将查询值绑定(bind)到 props?

我希望 /my-foo?bar=my-bar 传递 Prop {foo: "my-foo", bar: "my-bar"} .

我目前正在使用这样的东西:

export default new Router({
  routes: [
    {
      path: "/:foo",
      name: "Foo",
      component: FooPage,
      props: route => ({ foo: route.params.foo, bar: route.query.bar})
    }
  ]
});

我正在寻找类似的东西:

export default new Router({
  routes: [
    {
      path: "/:foo?bar=:bar",
      name: "Foo",
      component: FooPage,
      props: true
    }
  ]
});

我正在使用 vue-router 2.3.1

最佳答案

我不明白您当前方法的问题;很好地解决了您的用例。

也就是说,您可以尝试 Object.assign ,像这样:

export default new Router({
  routes: [{
    path: "/:foo?bar=:bar",
    name: "Foo",
    component: FooPage,
    props: route => Object.assign({}, route.query, route.params)
  }]
})

...您还可以使用 object spread 尝试更现代的方法(如果你有 babel correctly configured )......

route => ({ ...route.query, ...route.params })

route.params 作为最后一个合并/展开项可以避免查询字符串覆盖路径参数。

关于javascript - 使用 vue-router 将查询绑定(bind)到 props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783787/

相关文章:

javascript - Vue js,缺少从 HTML 到相关 JS 的映射

javascript - 插入父帖子vue js的子评论

javascript - HTML 中完整性属性的用途是什么?

Visual Studio 2015 Community Edition 中的 onclick 按钮未调用 JavaScript 函数

javascript - 如何在没有 PHP(仅 jQuery/javascript)的情况下按顺序链接到下一页和上一页

javascript - Vue.js。使用事件总线和存储哪个更好?

vue.js - VSCode 不在 .vue 文件中显示 HTML 属性,而是在 html 文件中显示

javascript - 我的 Vuex 表单获得第一个字段,但没有第二个字段,默默地失败

javascript - 在哪里/如何为我自己创建的表单(Vue)组件定义提交目的地?

javascript - 是否有可能阻止浏览器发出跨方案 CORS 请求?