v0.5.1发布日志
发布日志:2022-04-10
1 体系性、扩展性
v0.5.1版本在保持整体公共访问接口不变的基础上,进一步重构底层实现逻辑。详情可查看文档 《体系设计》 。
2 组件体系
v0.5.1进一步抽象组件的共有特性,比如是否包括依赖项、是否是容器组件等。新增诸如 ContainerBase
、HTMLWidgetBase
等组件基类封装共同逻辑,,并支持容器组件的嵌套使用。
在实现上使用 singledispatch 的函数重载功能,这样:
- 所有组件拥有同一的入口,使用
dw_widget
标签可渲染所有类型的组件 - 将参数和变量的类型明确化,减少了 Duck Type 代码的使用。
3 新的组件存储层
将组件存储相关功能从DJESite
中移除,形成新的 django_echarts.stores
包。
这样,保存图表创建器和组件的实例对象,由 starter
模块下移到 stores
模块,并实现单例模块。。
site.DJESite
^
|
stores.EntityFactory
^
|
Lazy
在实现细节上:
DJESite
不再实现WidgetGetterMixin
- 移除
DJESite.resolve_chart
/DJESite.resolve_html_widget
方法 WidgetGetterMixin
接口方法resolve_*
重命名为get_*
4 优化路由入口
移除 DJESite.dje_get_urls
接口,新增 DJESite.extend_urlpatterns
函数。
class MyPageView(DJESiteBackendView):
pass
site_obj.extend_urlpatterns([
path('mypage/', MyPageView.as_view(), name='my-page')
])
5 命令行优化
命令 download / info 按图表查找依赖项不再需要设置 site_class
, 使用 stores.entity_factory.factory
即可访问图表创建器和组件对象。