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>
相关推荐
子兮曰8 小时前
async/await高级模式:async迭代器、错误边界与并发控制
前端·javascript·github
恋猫de小郭8 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
GIS之路10 小时前
ArcGIS Pro 中的 Notebooks 入门
前端
IT_陈寒11 小时前
React状态管理终极对决:Redux vs Context API谁更胜一筹?
前端·人工智能·后端
gxp12312 小时前
初学React:请求数据参数未更新 && 数据异步状态更新问题
react.js
Kagol12 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
柳杉12 小时前
从零打造 AI 全球趋势监测大屏
前端·javascript·aigc
simple_lau12 小时前
Cursor配置MasterGo MCP:一键读取设计稿生成高还原度前端代码
前端·javascript·vue.js
睡不着先生12 小时前
如何设计一个真正可扩展的表单生成器?
前端·javascript·vue.js
天蓝色的鱼鱼13 小时前
模块化与组件化:90%的前端开发者都没搞懂的本质区别
前端·架构·代码规范