javascript - vue.js:如何指定使用哪个子组件?

标签 javascript vue.js vuejs2 vue-component inversion-of-control

在我的应用程序中有通用和品牌特定的组件。假设我有 2 个品牌特定组件 Product_brand_A.vueProduct_brand_B.vue,我想将其显示在列表中。父组件 ProductList.vue 是通用的(用于两个品牌)。

ProductList.vue 中我可以选择哪些选项来指定要使用哪个子组件?

// ProductList.vue (generic)
import Product from 'Product.vue' // importing won't do
var ProductList = {
  components: {
    Product
  },
...
}

我不想导入两个子组件并在运行时决定,它应该是一个构建时解决方案。

最佳答案

我认为这里使用 slot api 更好。以下是列表组件的使用示例:

<ProductList :items="someProductsBrandA">
    <template v-slot:item="props">
        <Product_brand_A product="props.product">
        </Product_brand_B>
    </template>
</ProductList>

这样您将来就可以添加任意数量的不同产品组件。您可以在此处查看插槽 API:https://v2.vuejs.org/v2/guide/components-slots.html

关于javascript - vue.js:如何指定使用哪个子组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59421486/

相关文章:

c# - 来自 asp.net 3.5 代码隐藏的警告框

javascript - 这个(共享的)逻辑属于 Backbone 模型或 View 还是单独的实用程序?

javascript - 调整容器大小,而不是输出图像 - Croppa Vue 组件

javascript - vue2 react 过滤器值?

javascript - 使用数据库中存储的名称在个人资料页面中显示用户名

javascript - IE 扭曲幻灯片 "BACK"和 "FORWARD"导航

javascript - Nuxt.js:如何为单个路由更改覆盖 scrollBehaviour

vue.js - 从 nuxtjs 中的外部 js 文件访问存储

html - 如何在Vue中的html元素内部使用变量创建类?

javascript - 使用 VueJS 过滤复选框