自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 BpmnJS源码篇1:Injector 依赖注入模式的实现

本身这个库的名字并不叫injector,而是didi,由bpmn.js团队的核心成员nikku基于node-di这个库进行的迭代开发。之所以作者在小册里都称为 Injector,是因为这个库的默认导出对象就是一个名为Injector的构造函数,且符合这个库在 bpmn.js 和 diagram.js 中的实际作用。在didi的文档中是这么描述这个库的:使用 didi 这个库(Injector)的时候,您必须遵循 “依赖注入/控制反转” 的原则,将组件/构造函数声明与实例化过程解耦。

2025-02-07 11:20:29 704

原创 开篇:重新认识 bpmn.js 与 BPMN 规范

BPMN(全称 Business Process Model and Notation,业务流程模型和标记法),是一个全球性的标准业务建模及执行标准,也可以看做是一门基于流程图的、开放标准的符号语言。该标准由对象管理组(Object Management Group - OMG)进行维护,与其他商业组织无关。

2025-02-06 13:34:07 838

原创 bpmn-js 扩展元素模型

这里用一个例子来进行说明。在 bpmn-js 中,临时子流程具有一个属性,默认为 true,所以 xml 中会有如下情况:使用 bpmn-js 解析该流程得到的两个子流程对应 js 对象如下:此时可以看到虽然在 js 中我们可以获取到的实际值,但当其为 true 时无法显示到 xml 中。那么这个属性在 Json Schema 中的定义是怎么样的呢?"types": [省略了部分内容。其中可以看到isAttr为true,所以这个属性直接显示在标签上,默认值default为true。

2024-06-26 13:31:27 2084

原创 关于工作流开发前端选型的一点个人见解(bpmn.js与LogicFlow)

首先需要明确的一点是,本文的出发点纯粹是针对工作流开发的场景的选型对比,其他业务场景下建议重新调研。工作流,即 Workflow,是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。以上是维基百科对工作流技术的定义。之所以称为技术。

2023-12-20 17:09:02 3752 1

原创 Bpmn.js 进阶指南之原理分析与模块改造

在第四节中,大概讲解了自定义元素属性的方式。参照Bpmn-js自定义描述文件说明-掘金和,这里再重新说明一下。一个描述文件的格式为json,或者是一个可以导出json对象的js/tsname: 该部分扩展的名称,一般根据流程引擎来命名,字符串格式uri: 统一资源标识符,一般是一个地址字符串prefix: 属性或者元素统一前缀,小写字符串格式xml: 格式转换时的配置,一般用来配置, 表示会将标签名转换为小写驼峰,可省略types: 核心部分,用来声明元素和属性,以及扩展原有属性等,对象数组格式。

2023-12-20 14:02:11 3825 1

原创 bpmn-js 交流群附属资料(文档及开源库)

实现了垂直泳道、多种自定义、activiti、flowable、camunda 三种流程引擎的属性配置;好东西,就是没开源。。。

2023-12-14 12:37:35 1555 2

原创 史上最详细的 Vue 3 渲染过程与 diff 图解

大家好,我是 Miyue,人称“小米”(不是那个小米)~从上一篇从 CreateApp 开始学习 Vue 源码中,基本了解了与两个方法的来源和大致执行过程,这里依然以上文的流程图来进行回顾:所以在创建好应用 app 后执行mount函数,通过将我们的入口组件App.vue转换成VNode树,最后使用patch()函数将VNode树转换为真实 Dom 渲染到页面上。而 Vue 3 的 diff 算法,与 Vue 2 一样,依然在patch过程中。那么首先,先来看一下 VNode 的生成吧~

2023-04-10 11:07:47 980 1

原创 Vue2 diff 算法图解

看 Vue 2 的源代码已经很久了,从用 flow 到如今使用 TypeScript,我每次都会打开它的源代码看一看,但是每次都只看到了数据初始化部分,也就是的阶段,对于如何生成 VNode(Visual Dom Node, 也可以直接称为 vdom) 以及组件更新时如何比较 VNode(diff)始终没有仔细研究,只知道采用了双端 diff 算法,至于这个双端是怎么开始怎么结束的也一直没有去看过,所以这次趁写文章的机会仔细研究一下。在我的理解中,diff 指代的是,即新旧内容之间的区别计算;

2023-04-07 09:37:08 863

原创 Bpmn.js 进阶指南(万字长文)

由于 bpmn.js 内部各个模块相互独立,很难编写出全面且流畅的使用教程,之前写的文章也常常是写到一半便没了头绪,所以看起来和没看没什么区别。现在在了解了 bpmn.js 与 diagram.js 的源码,并对相关模块和插件进行了 dts (typescript declare) 的编写之后,心里大致明白如何在原来的基础上进行扩展与重置,所以希望这篇文章能写的尽量全面和清晰,减少大家入坑时消耗的时间和精力。上节中,讲述了 bpmn.js 的简介和相关底层依赖,以及在 Vue 2.x 项目中的基础使用。本篇

2022-07-07 15:07:35 2912

原创 avaScript高程笔记——客户端存储

现在越来越多的网站是动态网站,常常需要将后端数据传输给前端保存或者更新到页面中,尤其是用户偏好设置,保存在客户端不仅可以减少请求耗时,也能降低服务端的压力。客户端(这里一般指浏览器)目前主要包括三类存储方式:cookie, Web Storage 和 IndexedDB。其中 Web Storage 又包含 Local Storage 和 Session Storage。(现在主流浏览器还支持 Web SQL,这里暂时不做介绍…主要是不大了解)1. cookiecookie,全名叫 HTTP c.

2021-02-24 18:50:06 3098

原创 设计模式(二)—— 创建型模式

设计模式(二)—— 创建型模式文章首发于 掘金作者:MiyueFE著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。创建型模式,即处理对象创建过程的设计模式,根据实际情况来使用合适的模式创建对象。创建型模式主要是将系统所需要的用到的具体类封装起来,在内部实现这些具体类的创建和结合,并对外隐藏这个过程细节。外部无法直接访问这个对象的创建和组合过程。使用者只需要关心何时、何地、由谁、怎样创建这个对象。创建型模式主要包含以下几种:简单工厂模式 Simple Factory工

2021-02-21 11:41:47 1373

原创 设计模式(一)——七大原则

设计模式(一)——七大原则内容来自 《JavaScript设计模式》张容铭 著 (2015年)、《大话设计模式》程杰 著、“Java设计模式” C语言中文网文章首发于 掘金作者:MiyueFE著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。序:设计模式(Design Patterns),指软件/程序开发过程中被经常使用的一种代码逻辑设计经验的集合,目的是为了提高代码的安全性、可靠性、可读性、可维护性、可拓展性。使用设计模式来进行开发,就是为了降低代码的耦合度,增加代码

2021-02-21 11:39:38 305

原创 Bpmn.js自定义文件说明

Bpmn.js自定义文件说明由于工作需要(其实不是很需要),在公司项目的基础上开源了一个基于 bpmn-js + Vue 2.x + ElementUI 的一个流程编辑器 Bpmn Process Designer, 预览地址 MiyueFE blog, 欢迎 fork 和 star。前言在使用 bpmn-js 绘制流程图时,可能会存在需要开发者自己定义属性或者元素的情况,为了保证符合官方定义,对官方文档进行了汉化说明。以下说明基于个人理解,可能与真实作用有出入,希望大家指出不正确或者意义不明的地

2021-02-21 11:36:46 9540 8

原创 Bpmn.js 中文文档(二)

Bpmn.js 中文文档(二)前言:由于工作需要(其实不是很需要),在公司项目的基础上开源了一个基于 bpmn-js + Vue 2.x + ElementUI 的一个流程编辑器 Bpmn Process Designer, 预览地址 MiyueFE blog, 欢迎 fork 和 star。四. Modules7. Modeling 基本建模方法Diagram.js 提供的基础建模工厂 BaseModeling,注入了 EventBus, ElementFactory, CommandSta

2021-02-21 11:34:05 14548 2

原创 Bpmn.js 中文文档(一)

Bpmn.js 中文文档(一)由于工作需要(其实不是很需要),在公司项目的基础上开源了一个基于 bpmn-js + Vue 2.x + ElementUI 的一个流程编辑器 Bpmn Process Designer, 预览地址 MiyueFE blog, 欢迎 fork 和 star。一. 引入Bpmn.js并初始化建模器/* 基于vue2.x, 省略了template模板与部分data */import BpmnModeler from "bpmn-js/lib/Modeler"exp

2021-02-21 11:31:01 65374 19

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除