lowcodeEngine 怎么生成一个左侧面板

初始化流程

如何生成一个左侧面板

  1. 初始化插件时往skeleton.leftArea新增按钮,新增按钮时往skeleton.leftFloatArea新增面板对象
  2. 点击按钮时,调用panel方法,处理面板的显示隐藏
  3. workBench-->leftFloatArea --> skeleton.leftFloatRea.container.items.map(item=>item.content)--->Panel-->PanelView(widget-view)

主要类

lowcodeEngine有很多同名的类,shell下为对外开放的API, 保持内部类的引用

Designer:

设计器主体,保存editor, project, dragon等索引。

designer模块创建和管理所有ComponentMeta ,其他模块通过 designer 来获取指定的 ComponentMeta 实例;

注册dragon.onDrag onDragend等事件

Dragon:

拖拽引擎(Dragon)核心完成的工作是将被拖拽对象拖拽到目标位置, 内部有自己的EventEmiter对象(与editor的EventEmitter相互独立)

editor:

编辑器上下文 editor,主要包含:消息通知、插件引用等

继承EventEmitter来处理事件, 保存skeleton,plugins,designer等对象,

skeleton:

提供API能力, 内部保存inner-skeleton

inner-skeleton(editor-skeleton):

整体面板的管理扩展(对象保存,创建)

存放containers(widgetContainer实例,与Area对象中的container 是同一个对象实例),Area对象(leftArea,rightArea, toolBar等), widgets(存放具体的组件)

Area:

Area对象的管理(新增,删除,显示 ,隐藏),内部有WidgetContainer对象实例

WidgetContainer:

Widget对象的管理(存放实例对象items, 新增,删除,读取)。新增时是调用skeleton的createWidget方法创建Widget实例(根据不同类型生成PanelDock, Dock, Widget)

PanelDock对象

mobx化之后的content对应左侧面板的按钮

Panel控制类 LeftFloatPane组件展示

面板的显示隐藏

模型系统

官方介绍很详情,移步官方介绍

项目模型(Project)

项目模型提供项目管理能力,模型系统最顶层的模型。项目模型实例下可以持有多个文档模型的实例,其他模型实例(Document , Node, Prop等)均需要通过 project 来获得

文档模型(DocumentModel)

文档模型提供文档管理的能力,每一个页面即一个文档流,对应一个文档模型。文档模型包含了一组 Node 组成的一颗树,类似于 DOM。

节点模型(Node)

节点模型聚焦于单层级的 schema 相关操作:

属性模型(Props, Prop)

组件描述模型(ComponentMeta)

每一个组件对应一个 ComponentMeta 的实例,其属性和方法就是描述协议中的所有字段,所有 ComponentMeta 都由设计器器的 designer 模块进行创建和管理,其他模块通过 designer 来获取指定的 ComponentMeta 实例,尤其是每个 Node 实例上都会挂载对应的 ComponentMeta 实例。

lowcodeEngine设计器源码简析(创建流程,主要对象), 怎么生成一个左侧面板的更多相关文章

  1. Flink源码阅读(一)——Flink on Yarn的Per-job模式源码简析

    一.前言 个人感觉学习Flink其实最不应该错过的博文是Flink社区的博文系列,里面的文章是不会让人失望的.强烈安利:https://ververica.cn/developers-resource ...

  2. SpringMVC学习(一)——概念、流程图、源码简析

    学习资料:开涛的<跟我学SpringMVC.pdf> 众所周知,springMVC是比较常用的web框架,通常整合spring使用.这里抛开spring,单纯的对springMVC做一下总 ...

  3. django-jwt token校验源码简析

    一. jwt token校验源码简析 1.1 前言 之前使用jwt签发了token,里面的头部包含了加密的方式.是否有签名等,而载荷中包含用户名.用户主键.过期时间等信息,最后的签名还使用了摘要算法进 ...

  4. 0002 - Spring MVC 拦截器源码简析:拦截器加载与执行

    1.概述 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录请求信息的日 ...

  5. OpenStack之Glance源码简析

    Glance简介 OpenStack镜像服务器是一套虚拟机镜像发现.注册.检索. glance架构图: Glance源码结构: glance/api:主要负责接收响应镜像管理命令的Restful请求, ...

  6. spring ioc源码简析

    ClassPathXmlApplicationContext 首先我们先从平时启动spring常用的ClassPathXmlApplicationContext开始解析 ApplicationCont ...

  7. AFNetworking源码简析

    AFNetworking基本是苹果开发中网络请求库的标配,它是一个轻量级的网络库,专门针对iOS和OS X的网络应用设计,具有模块化的架构和丰富的APIs接口,功能强大并且使用简单,深受苹果应用开发人 ...

  8. ElementUI 源码简析——源码结构篇

    ElementUI 作为当前运用的最广的 Vue PC 端组件库,很多 Vue 组件库的架构都是参照 ElementUI 做的.作为一个有梦想的前端(咸鱼),当然需要好好学习一番这套比较成熟的架构. ...

  9. DRF之APIView源码简析

    一. 安装djangorestframework 安装的方式有以下三种,注意,模块就叫djangorestframework. 方式一:pip3 install djangorestframework ...

  10. 并发系列(二)——FutureTask类源码简析

    背景 本文基于JDK 11,主要介绍FutureTask类中的run().get()和cancel() 方法,没有过多解析相应interface中的注释,但阅读源码时建议先阅读注释,明白方法的主要的功 ...

随机推荐

  1. 论文翻译:2022_PercepNet+: A Phase and SNR Aware PercepNet for Real-Time Speech Enhancement

    博客地址:凌逆战 (转载请注明出处) 论文地址:PercepNet+: 用于实时语音增强的相位和信噪比感知 PercepNet 引用格式: Ge X, Han J, Long Y, et al. Pe ...

  2. FAQ docker进程启动失败处理案例分享

    docker进程启动失败处理 背景 有同学反馈在启动docker的时候遇到了如下问题:docker启动报错 [root@wuxianfeng ~]# systemctl start docker Jo ...

  3. MySQL-多表查询的两种方法、Navicat、python操作MySQL

    1.多表查询的两种方法 1.连表操作: 1.1:inner join:内连接,将两张表共同的部分连接起来生成一张新表.拼接顺序是把后面的表拼在前面的表,如果颠倒位置结果不同. select * fro ...

  4. Cow Picnic S 更新了(在后面)

    解题思路: 从每头奶牛的节点开始做搜索,用dfs走遍所有路径(走到底,不回头).每遍历到一个节点该节点遍历次数就加一,最后所有奶牛都搜索完之后,检查每个节点的遍历次数,如果该节点的遍历次数等于奶牛数则 ...

  5. 重学SpringBoot. step4 Redis的应用

    Redis的应用 Redis支持的七种数据类型:字符串.散列.列表(链表).集合.有序集合.基数和地理位置,具体用Java怎么操作其实可以直接看redisTemplate的源代码. Redis引出来的 ...

  6. Vue09 事件

    1 事件语法 Vue 中的事件绑定可以使用 v-on 指令进行处理,可以把 v-on 绑定事件简写为 @. <div id="root"> <button @cl ...

  7. DownKyi安装使用教程

    哔哩下载姬 哔哩下载姬是一个简单易用的哔哩哔哩视频下载工具,具有简洁的界面,流畅的操作逻辑. 支持批量下载哔哩哔哩视频 支持批量下载bilibili视频. 哔哩下载姬可以下载几乎所有的B站视频,并输出 ...

  8. while循环补充、for循环、range关键字、内置方法之整型、内置方法之浮点型、内置方法之字符串

    目录 一.while循环补充 (1).while+continue (2).while+else(了解) (3).死循环 二.for循环 range关键字 for+break for+continue ...

  9. Spring Boot 防止接口被恶意刷新、暴力请求

    ​在实际项目使用中,必须要考虑服务的安全性,当服务部署到互联网以后,就要考虑服务被恶意请求和暴力攻击的情况,下面的教程,通过Spring Boot提供的HandlerInterceptor和Redis ...

  10. kali linux生成密码字典方法

    kali linux生成密码字典方法 所谓的密码字典主要是配合密码破解软件所使用,密码字典里包括许多人们习惯性设置的密码.这样可以提高密码破解软件的密码破解成功率和命中率,缩短密码破解的时间.当然,如 ...