React中使用Vue的slot插槽功能

如果觉得还有点用,请您给我一个赞!您的赞是我坚持下去的动力

在vue中经常使用的slot功能在react下其实非常容易实现

场景案例:
我们假设有个Panel组件,然后暴露一个名为slot的属性用来表示插槽的名称,Panel会将 inputbutton这2种slot放入不同的位置,以区分
在父组件使用的时候是这样的

return (
  <Panel>
    <input slot="input"></input> 
    <button slot="button">i am button</button>
  </Panel>
);

Panel组件的实现
将所有slot名称为input的组件放入了div内
将所有slot名称为button的组件放入了section内

function Panel(props){
  return (
    <div>
      <div>
        {props.children.map((item)=>{
          return item.props.slot==='input'?item:null;
        })}
      </div>
      <section>
        {props.children.map((item)=>{
          return item.props.slot==='button'?item:null;
        })}
      </section>
    </div>
  );
}

如果觉得还有点用,请您给我一个赞!您的赞是我坚持下去的动力

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 本次的收听的节目是喜马拉雅app付费专栏《每天听见吴晓波》的《为什么你还喜欢苹果手机》。 本期节目由新上市的...
    鹿笙小记阅读 823评论 3 6
  • 周五晚上,我去听了晋城电视台知名主持人冰河老师的朗读讲座。冰河老师从朗读的技巧和感情两大方面做了深入浅出的讲解。 ...
    雨如花飞阅读 650评论 8 15