【问题标题】:Can we use props to pass variable in vue?我们可以使用props在vue中传递变量吗?
【发布时间】:2021-04-10 15:57:11
【问题描述】:

小问题:

我有 2 个父组件,其中嵌套了相同的子组件。 我使用道具,以便父母可以告诉孩子要显示什么标题。

这个子组件是一个照片库。它对数据库进行查询,下载照片并显示它们。经典。

我需要父母告诉孩子从哪里获取照片: 获取所有用户的照片,用于主页 或者 仅获取用户页面的特定用户的照片。

我想知道我是否可以通过道具传递这些信息。 那可能吗?我们可以在 setup() 函数中使用来自 prop 的信息作为变量吗? 有没有更好的方法来做到这一点?

【问题讨论】:

  • 为什么不简单地向我们展示代码? boromir meme
  • 请给我们一些代码。 How to Ask
  • 我的代码没有任何意义。我什至不知道这是否可能。我只是想知道子组件是否可以使用道具作为函数中的值。
  • 基本上,我只想知道是否有办法在子组件中 console.log 一个 prop。我正在使用组合 API 和 setup() 函数。

标签: vue.js vue-props


【解决方案1】:

将对象从一个组件传递给子组件是 props 的目的。

您可以通过道具传递许多物品。 VueJS 内置了以下类型:

  • 字符串
  • 号码
  • 布尔值
  • 数组
  • 对象
  • 功能
  • 承诺

V3 VueJS guide 中,它给出了以下示例,将道具传递到组件中,然后在setup() 方法中记录到控制台。

export default {
  props: {
    title: String
  },
  setup(props) {
    console.log(props.title)
  }
}

但是,在使用 props 时,您应该始终标记是否是required,它的type 是什么,如果不需要,default 是什么。

例如:

export default {
  props: {
    title: String, // This is the type
    required: false, // If the prop is required
    default: () => 'defaultText' // Default needed if required false
  },
  setup(props) {
    console.log(props.title)
  }
}

需要注意的是,使用默认值时,该值必须从函数返回。您不能直接传递默认值。

【讨论】:

  • !!设置(道具)!我认为这是我唯一缺少的东西......我不敢相信它是如此简单。非常感谢您的留言!!!我希望我直接问这个问题,而不是自己搜索。我不认为我在任何地方都见过这个。我搜索了一整天!再次感谢!
  • 别担心,@Posoroko!很高兴这个答案对您有所帮助。您可以在我的答案中链接的页面上看到我使用的确切示例以及更多示例。请我的回答正确,并在可能的情况下投赞成票,这样它就可以为任何未来的访问者提供更好的可见性。快乐学习! :)
猜你喜欢
  • 2019-04-24
  • 1970-01-01
  • 2013-03-25
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多