React-props的children属性

在 React 中,子组件标签之间的内容(无论是文本、HTML 元素还是其他 React 组件)不会直接显示在页面上,而是会被收集到子组件的 props.children 属性中;

  • 没有在子组件标签之间传递任何内容

    javascript 复制代码
    - 父组件: 
    <Son />
    
    - 子组件
    props.children // undefined
  • 传递字符串

    javascript 复制代码
    - 父组件
      <Son>Hello World</Son>
    - 子组件
      props.children // 'Hello World'
  • 传递单个html元素

    javascript 复制代码
    - 父组件
      <Son><div>Hello World</div></Son>
    - 子组件
      props.children // vnode
  • 传递多个html元素

    javascript 复制代码
    - 父组件
     <Son>
       <header>头部</header>
       <footer>尾部</footer>
     </Son>
    - 子组件
     props.children // [vnode, vnode]

使用:其实props.children属性和vue中的默认插槽有点像

  • vue中:在子组件中使用slot占位 将(父组件中)子组件标签间内容渲染到slot位置;

    javascript 复制代码
    <!-- 子组件 -->
    <template>
      <div class="card">
        <h3>{{ title }}</h3>
        <slot></slot> <!-- 相当于 React 的 {props.children} -->
      </div>
    </template>  
    
    <!-- 父组件使用 -->
    <Card title="用户信息">
      <p>这是插槽内容</p>
      <button>编辑</button>
    </Card>
  • React中:将(父组件中)子组件标签间的内容添加在子组件props.children中,在子组件中想要使用的位置使用即可( {children} )

    javascript 复制代码
    // 子组件
    function Card({ title, children }) {
     return (
       <div className="card">
         <h3>{title}</h3>
         {children} <!-- 相当于 Vue 的 <slot></slot> -->
       </div>
     );
    }
    
    // 父组件使用
    <Card title="用户信息">
     <p>这是children内容</p>
     <button>编辑</button>
    </Card>
相关推荐
陈随易2 小时前
bm2,Node.js 与 Bun 项目部署新选择
前端·后端·程序员
可乐鸡翅yeah_3 小时前
FFmpeg 生成 HLS 独立分片 independent‑segments 参数到底有什么用
javascript·ffmpeg·音视频·safari·m3u8
福兮说3 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
Ai-_Man4 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
传人once4 小时前
多图片上传预览功能如何写
前端·css·html·jquery·html5
Eric.465 小时前
Wan‑Animate+MiniMax-H3 本地部署 AI 漫剧流水线:8G 显存动作迁移与动态分镜工程实战
前端·人工智能·comfyui·ai漫剧
liangshanbo12155 小时前
JavaScript 异步核心主线
javascript·事件循环·异步操作
传人once6 小时前
悬停旋转放大和位移效果如何写
javascript·css·动画
库拉镜像AI牛牛6 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
律宏阔6 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter