首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过路由器将不同的数据作为道具传递给子组件的Vue.js

通过路由器将不同的数据作为道具传递给子组件的Vue.js
EN

Stack Overflow用户
提问于 2021-03-12 02:39:48
回答 1查看 38关注 0票数 0

我的vue应用程序中有一个嵌套的路由器。

我的router/index.js

代码语言:javascript
运行
复制
{
    path: "/parent",
    name: "Parent",
    component: () =>
      import(/* webpackChunkName: "parent" */ "../views/Parent.vue"),

    children: [{
      path: ':id',
      name: 'ChildOne',
      components: {
        nestedview: () =>
          import(/* webpackChunkName: "child-one" */ "../views/ChildOne.vue"),
      }
    },
    {
      path: "child-two",
      name: "ChildTwo",
      components: {
        nestedview: () =>
          import(/* webpackChunkName: "child-two" */ "../views/ChildTwo.vue"),
      }
    }]
  },

父组件模板(我使用pug):

代码语言:javascript
运行
复制
  router-view(
    name="nestedview",
    :functionOne="functionOne",
    :functionTwo="functionTwo",
    :functionThree="functionThree",
  )

问题是,我只需要在ChildOne组件中使用functionOnefunctionTwofunctionThree,在那里我将它们作为道具传递。在ChildTwo组件中,我只需要作为道具传递的functionOne,但在浏览器的源代码中,我可以看到另外两个以某种方式作为组件根元素的参数functionTwo="function () { [native code] }"functionThree="function () { [native code] }"传递。

问题是,如果这些组件在技术上不是父组件的子组件,而是通过嵌套的路由器呈现的,那么有没有一种方法可以将不同的数据作为道具从父组件传递给子组件?

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 09:59:07

如果找不到属性,v-bind会自动绑定属性。

一个快速的解决方法是使用v-bind.prop modifier,这样绑定只会尝试设置存在的组件属性(否则,什么都不会绑定):

代码语言:javascript
运行
复制
router-view(
  name="nestedview",
  :functionOne.prop="functionOne",
  :functionTwo.prop="functionTwo",
  :functionThree.prop="functionThree",
)

demo

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

https://stackoverflow.com/questions/66588550

复制
相关文章

相似问题

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