可视化搭建 - 容器组件设计

本文探讨了在可视化搭建中如何设计容器组件,包括简单容器、卡片容器和Tab容器的定义,强调了Children和treeLike结构的重要性。通过PropTypes的定义,允许组件props接收React组件实例,实现容器功能。总结指出,容器组件的本质是特定prop属性为组件实例,设计目标是提供灵活的容器定义能力,而无需新的组件类型。
摘要由CSDN通过智能技术生成

可视化搭建会遇到如下三类容器组件:

  1. 简单容器:以 children 容纳子组件的容器。

  2. 卡片容器:以 props.header 加上 props.header 等多个插槽容纳子组件的容器。

  3. Tab 容器:以 props.tabPanel[x] 等动态数量插槽容纳子组件的容器。

画布本身也是一个容器组件,所以可视化搭建离不开容器。

另一方面,我们应该允许给组件 props 传入 React 组件实例,但组件树是可序列化的 JSON 结构,因此需要一种定义方式,将某些属性转化为 React 组件实例传给组件实例。

容器的定义

任何组件都可能是容器组件,只要它将 props.childrenprops.footer 等任何属性作为 ReactNode 渲染。因此我们不需要特殊声明组件是否为容器,而仅需将某些组件 Key 声明为 ReactNode 节点。

Children

children 因为太常用因此单独强调出来,可以只在在组件实例定义 children 属性,它为是一个数组:

import { ComponentInstance } from "designer";

const componentTree: ComponentInstance = {
  componentName: "div",
  children: [
    {
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值