跳转至

v0.5.1发布日志

发布日志:2022-04-10

1 体系性、扩展性

v0.5.1版本在保持整体公共访问接口不变的基础上,进一步重构底层实现逻辑。详情可查看文档 《体系设计》

2 组件体系

v0.5.1进一步抽象组件的共有特性,比如是否包括依赖项、是否是容器组件等。新增诸如 ContainerBaseHTMLWidgetBase 等组件基类封装共同逻辑,,并支持容器组件的嵌套使用。

在实现上使用 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 即可访问图表创建器和组件对象。