react19【动态插槽】

使用场景

比如你在做一个 仪表盘页面(Dashboard),它可能会显示:

  • 折线图(LineChart)
  • 实时统计(RealTimeStats)
  • 通知中心(NotificationCenter)
    ......

实现方案

用一个统一的 slots 对象,把每个插槽的"名字"作为 key,对应的 React 组件作为 value。

html 复制代码
// 使用端
<Dashboard slots={{
  chart: LineChart,
  stats: RealTimeStats,
  alerts: NotificationCenter
}} />

子组件的内部实现

ts 复制代码
const Dashboard = ({ slots }) => {
  return Object.entries(slots).map(([slotName, Component]) => (
    <div key={slotName} className={`slot-${slotName}`}>
      <Component />
    </div>
  ));
};
  • 把 slots 对象拆成数组

    ts 复制代码
    [
    	["chart", LineChart], 
    	["stats", RealTimeStats], 
    	["alerts", NotificationCenter]
    ]
  • 用 map 遍历每个插槽项

    每一项都有个名字(比如 "chart")和对应组件(比如 LineChart)

相关推荐
早起傻一天~G6 小时前
vue2+element-UI表单封装
前端·vue.js·ui
pixcarp7 小时前
Nginx实战部署与踩坑总结 附带详细配置教程
服务器·前端·后端·nginx·golang
Live&&learn7 小时前
Vue项目打包后内联字符串不显示的原因
前端·javascript·vue.js
爱上好庆祝7 小时前
学习js的第三天
前端·css·人工智能·学习·计算机外设·js
aq55356007 小时前
Chrome如何重塑Web标准的未来格局
前端·chrome
宁雨桥7 小时前
深入剖析Vue2与Vue3响应式原理:从Object.defineProperty到Proxy的演进
前端·vue.js
wytraining7 小时前
SDD规范驱动开发
前端
深海鱼在掘金7 小时前
Next.js从入门到实战保姆级教程(第十四章):性能优化深度实践
前端·typescript·next.js
tiger从容淡定是人生7 小时前
Selenium与Playwright:两大Web自动化框架的深入对比
前端·selenium·测试工具·自动化·web测试·playwright·信息化战略
好运的阿财7 小时前
OpenClaw工具拆解之 web_fetch+image_generate
前端·python·机器学习·ai·ai编程·openclaw·openclaw工具