首页 > 解决方案 > Svelte 和 D3 笔刷

问题描述

我很难理解如何将 Svelte 与 D3 的画笔项目之类的东西一起使用。Svelte 使用声明性方法进行操作。在面积图示例中线条的 SVG 写在模板 HTML 中。要使用 D3 执行此操作,您将使用 Javascript 函数调用来选择一个元素并调用另一个函数来修改 DOM。在上述图表示例中,D3 缩放库仅用于生成轴数组,但 HTML 本身由 Svelte 管理。Svelte 以这种方式工作是有道理的——用函数调用构建东西会不那么干净,但我不知道如何用画笔做到这一点。如何在我的 Svelte 模板中以声明方式构建画笔 HTML,这将如何影响画笔事件之类的事情?最好只使用 onMount 内部的画笔功能,以及将更改事件与本地 Svelte 变量联系起来吗?

标签: d3.jsbrushsvelte

解决方案


React 中也存在同样的问题,因为 React 和 D3 都想负责 DOM。在 React 中,您只需在 ComponentDidMount 方法(如果使用 hooks.

Svelte 期望负责这种情况,您声明 UI 是如何构建的,并定义操作,让其完成工作。它无法跟踪 D3 所做的事情,所以我怀疑您只需要让 D3 负责该部分,而不必担心它会有点 hacky。


推荐阅读