官方溯源:
-
如何选择和设置布局
new G6({ layout: { // } });
-
如何传入数据渲染
-
如何选择modes
-
什么是行为
-
内置节点和边
-
如何自定义注册行为
-
如何自定义modes
-
如何自定义节点
-
如何继承节点
-
item 生命周期
-
什么是 shape
-
如何给节点和边绑定事件
-
如何给画布绑定事件
-
如何设置节点和边的状态
-
如何根据状态查找item
-
如何绘制自定义锚点
-
自定义锚点拖拽事件不生效
-
如何让锚点更生动
-
如何对非节点和边绑定事件
// 添加自定义锚点 const anchor = group.addShape('circle', { attrs: {}, draggable: true, // ...其他属性 }); // 这里支持所有鼠标事件, 键盘事件等 anchor.on('click', () =- { // 想干啥干啥 });
-
绑定事件 this 指向问题
-
如何拖拽节点,位置如何计算
-
如何生成拖拽节点的影子节点
-
拖拽锚点时如何生成虚线
-
如何自定义节点,边的样式和状态样式
-
事件触发了如何通知画布外部
-
事件通知event 对象有哪些属性
//
-
外部如何更新节点属性和样式
-
如何添加键盘事件,并在画布后防止事件仍然触发
-
group ,item ,children 有何区别
-
tofront和toback的怪异现象,zindex为何不生效
-
为何拖拽锚点生成虚线总是无法触发锚点事件
-
如何防止状态冲突,如何处理
-
如何给画布设置鼠标样式
-
如何给边加上箭头
-
如何切换边的形状
-
如何添加字体图标
//
-
如何自定义锚点数量和位置
-
如何锁定节点位置
//
-
label 文字超长,如何处理?
-
内部根据item 宽高进行截取(很可能不理想)
-
传入data时就对文字进行截取(效果最理想)
-
如何创建自定义tooltip
-
如何在删除时通知画布外部
-
如何封装g6开箱即用
-
api尽量简洁
-
与官方风格保持一致, 降低学习成本
-
预留事件通知外部进行决策
-
暴露注册插槽, 方便扩展
-
语义化书写更和谐
-
如何封装后支持注册行为
-
如何封装前暴露G6类用于注册插件
-
为什么初始化位置后拖动后被初始化的节点会移动
-
选择内置layout 会受内部计算影响, 导致重绘
-
继承节点源码浅析
//
-
如何使用线条背景插件
//
-
内容太多,使用minimap
//
-
如何将画布偏移量暴露给外部使用
-
如何在时minimap拖拽通知内部
//
-
使用缩放插件时如何计算缩放比例
//
-
如何更新布局
-
如何获取g6渲染后的数据