Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';在Vue.js中将组件道具传递给组件的惯用方法是什么?_Javascript_Reactjs_Vue.js - Fatal编程技术网

Javascript 什么';在Vue.js中将组件道具传递给组件的惯用方法是什么?

Javascript 什么';在Vue.js中将组件道具传递给组件的惯用方法是什么?,javascript,reactjs,vue.js,Javascript,Reactjs,Vue.js,我来自ReactJS世界,有一种创建灵活组件的通用方法:将组件作为道具传递给其他组件 例如: import MyCard from './MyCard'; import Slider from './Slider'; const Example = ({items}) => { return <div classname="example"> <Slider cardComponent={MyCard} items={items}/> </div>

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

例如:

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

const Example = ({items}) => {
  return <div classname="example"> <Slider cardComponent={MyCard} items={items}/> </div>
}
从“/MyCard”导入MyCard;
从“./Slider”导入滑块;
常量示例=({items})=>{
返回
}
简单、优雅、聪明

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


我不需要回答如何创建
滑块
组件,我想知道将
MyCard
组件传递给它的惯用方法。

取决于您如何创建
滑块
组件,它是否采用组件路径,是否采用组件,是否根据传递的道具评估其子级,它有插槽、混音器吗

我的猜测是:

*.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>

//滑块组件

Vue.js可能有重复项,但不是重复项,因为Victor询问了如何创建
滑块
组件。我问过将组件作为道具传递给它的惯用方法是什么。插槽不是解决方案,因为
Slider
无法为其设置所需的道具。其中一个副本的答案提到了具有Vue的
:is
属性的动态组件。如果我使用此方法,如何将
Slider
组件上的其他道具传递到
MyCard
组件?我可以自由修改
Slider
import MyCard from './MyCard';
import Slider from './Slider';
export default {
  template: '#example-template',
  name: "Example",
  props: ["items"],
  components: {
    MyCard,
    Slider
  }
}
//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>