【问题标题】:Toggle components based on prop value in main Vue instance根据主 Vue 实例中的 prop 值切换组件
【发布时间】:2019-01-23 23:42:56
【问题描述】:

我正在设计一个页面,该页面使用一个酒店组件返回一堆不同的酒店。每家酒店都将唯一的值传递给组件,例如名称、星级、酒店设施等。

在 Vue 实例的主页面上,我需要一些基本的过滤器,这些过滤器可以根据每个组件自己的 prop 值切换为真/假。我不知道如何将 prop 值从酒店组件中提取到主 Vue 实例中并在其上运行方法?

由于这是一个小应用程序,我使用 CDN 是为了方便使用。

下面的组件示例。

<hotels
hoteltitle="Ryans"
hoteldesc="This hotel is situated on the popular waterfront with sweeping views 
overlooking the marina."
loc="Ibiza"
star="4"
beachfront="true"
family="false"
gym="true"
pool="true"
single="true"
spa ="false"
hotelurl="/url.html"
price="74"
url="index2.html"
accomCode="30030"
></hotels>

【问题讨论】:

  • 我认为您不应该将某些东西从子组件拉到父组件。 “所有的 props 在子属性和父属性之间形成一个单向向下的绑定:当父属性更新时,它会向下流向子属性,反之则不会。” vuejs.org/v2/guide/components-props.html#One-Way-Data-Flow。也许考虑使用事件总线。
  • 你能显示你的父组件代码吗?
  • @SuiDream 很空!
  • @Matt 可能就是问题所在。您可以将酒店存储在父组件的数组中,过滤计算属性中的数组,并使用过滤后的数组在循环中渲染子项。

标签: vue.js vuejs2 vue-component


【解决方案1】:

如果您想将emit 数据从子组件传递到父组件,您可以使用$emit 函数。检查officiel doc
检查此代码笔example

【讨论】:

    猜你喜欢
    • 2018-05-21
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2019-08-24
    • 2019-05-02
    • 2020-03-07
    • 2017-09-15
    • 2019-10-07
    相关资源
    最近更新 更多