javascript - 在 Vue.js 中将组件属性传递给组件的惯用方法是什么?

标签 javascript reactjs vue.js

我来自 ReactJS 世界,它有一种创建灵活组件的通用方法:将组件作为 prop 传递给其他组件。

例如:

import MyCard from './MyCard';
import Slider from './Slider';

const Example = ({items}) => {
  return <div classname="example"> <Slider cardComponent={MyCard} items={items}/> </div>
}

简单、优雅、聪明。

在 Vue.js 中实现这种方法的正确且惯用的方法是什么?

我不需要如何创建 Slider 组件的答案,我想知道将 MyCard 组件传递给它的惯用方法是什么。

最佳答案

取决于你如何创建你的 Slider 组件,它是否采用组件的路径,它是否采用组件,它是否根据传递的 Prop 评估它的 child ,它是否有插槽,混合?

我的猜测是:

*.html

<template id="example-template">
  <div class="example">
    <slider :items="items">
      <template #cardSlot="{requiredAttr1, requiredAttr2}">
        <my-card :attr1="requiredAttr1" :attr2="requiredAttr2">
      </template>
    </slider>
  </div>
</template>

*.js

import MyCard from './MyCard';
import Slider from './Slider';
export default {
  template: '#example-template',
  name: "Example",
  props: ["items"],
  components: {
    MyCard,
    Slider
  }
}

Slots

//slider component
<div class="slider"">
    <slot 
        name="slotname" 
        :passedPropName="sliderValue"
     >
    </slot>
</div>

//extended slider component
<slider>
    <template 
        #slotname="passedPropObj"
    >
        <mycomp 
           :propName="passedPropObj.passedPropName" 
        /> 
    </template>
</slider>

Dynamic & Async Components

关于javascript - 在 Vue.js 中将组件属性传递给组件的惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56276786/

相关文章:

reactjs - 我应该在后端还是前端过滤数据?

javascript - 为什么将 Buefy 导入我的 Vuejs 元素会使 <h1> 标签和某些 Bootstrap 元素显示错误的样式?

vue.js - 将 v-for 与 v-on 一起使用 :click in a Vue Component

vue.js - 从 kendo-ui grid col 模板内部调用 vue 方法

javascript - 如何在平面列表中动态设置 react-native 图像源

javascript - Shopify - 光滑的 slider /轮播 - 响应式设置不起作用

javascript - JavaScript 中的 Google Analytics 图表

javascript - window.location() 不工作,不打开页面

javascript - 如何在 React 中包含基于状态的表单字段属性?

javascript - 在 React 中使用 onClick 函数渲染多个按钮