问题标签 [virtual-dom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
311 浏览

cyclejs - Cycle.js (virtual-dom) 是否支持 React 的 refs 或 mithril 的 config 属性之类的东西?

换句话说,有没有办法在渲染后访问 DOM 元素?诸如鼠标焦点、代码荧光笔、动画之类的东西,它们是如何在 Cycle.js 中完成的?

0 投票
1 回答
372 浏览

virtual-dom - 如何连接虚拟上标、超标助手和主循环

我正在查看使用超脚本、主循环和 hyperx的子堆栈示例。

我想使用超脚本助手重新创建此示例以获取类似于 Elm 的代码。该模块说它同时支持hyperscriptand virtual-hyperscript,所以我正在尝试virtual-hyperscript.

我的代码如下所示:

它给了我一个错误:

怎么了?我认为有些东西没有正确连接,因为

如果有帮助,我可以发布我的 html 和我正在使用的 browserify 构建命令

0 投票
0 回答
50 浏览

dom - 如何持久化动态视图?

我正在使用 .NET MVC 4。假设我有一个 Pinterest 风格的社交媒体网站。用户可以固定内容(即图像),并通过在电路板上拖放图像来决定其针板的布局。

我如何保持他们所做的布局,以便在他们注销/登录时,内容与以前完全一样?所有具有关联 ID、类、样式等的 DOM 元素都需要保存。我还需要“自动保存”这些布局。

我能找到的最佳答案是这个:

如何持久化对客户端呈现的 Rails 视图所做的更改?

但是这个家伙似乎正在保存实际的 HTML 标记。我认为这将很快变得非常不灵活。我认为我应该保留 DOM 树本身,或者可能采用 ReactJS 路线来设计我的视图,假设 ReactJS 允许我将其 VirtualDOM(或实际 DOM 的实例)保存到数据库中,然后它可以在日志中重新渲染-在。

我错过了什么?我已经为此搜索了高低,但在如何解决这个问题上没有太多运气。任何帮助深表感谢!

0 投票
1 回答
842 浏览

zurb-foundation - 在 Cycle.js 中呈现所有 dom 后运行 js 代码

我想使用 Foundation 的显示插件在 Cycle.js 应用程序中显示一个不错的模式。

在玩了几个小时的 Webpack 和它的配置之后,我想出了如何将 Foundation 的 js 正确地导入到我的(es6)应用程序中。

但是,由于我处理的是虚拟dom,所以在初始化基础的js时,实际的html是不存在的。

这是我的组件的代码:

我的 main.js:

现在,如果我$(document).foundation()在应用程序初始化后在控制台中运行,事情就会按预期工作。但是在app代码中,由于dom是虚拟的,实际的html还没有被注入,所以什么都没有出现。

在应用程序完全初始化并实际填充 dom 后,我如何运行 js 代码?

0 投票
1 回答
1217 浏览

reactjs - 什么是 React.js 等效于 Jquery .html()

我正在尝试使用 React.js 将 Html 内容附加到 DOM 元素我想在 React 中执行它而不是使用 jquery 访问 DOM

var DOMNode = ReactDom.findDOMNode(this.refs.contentEdit); $(DOMNode).html(this.props.html);

我怎么能用纯粹的反应来写这个

0 投票
2 回答
168 浏览

javascript - 没有 React 的类 React 编程

我是使用JQuery长大的,并且一直遵循一种可以说是“类似React ”但不使用React的编程模式。尽管如此,我还是想知道我的图形性能表现如何。

例如,在我的前端,我有一个显示一些“状态”的表格(用React术语)。但是,对我来说,这个“状态”只是保存在全局变量中。我有一个update_table()函数,它是发生表更新的中心位置。它采用“状态”并用它呈现表格。它做的第一件事是调用$("#table").empty()以获得一个干净的开始,然后用“状态”信息填充行。

我在服务器端每 2-3 秒有一些动态变化的数据(“状态”),我使用 Ajax 进行轮询,一旦我得到数据/“状态”,我就调用update_table().

我知道,这是用React解决的完美问题。然而,在用 JQuery 实现这个简单的解决方案之后,我发现它工作得很好(我没有在这里填充一个巨大的表;我最多有 20 行和 5 列)。

我希望看到闪烁,因为调用之后在函数$("#table").empty()内逐一添加行。update_table()但是,浏览器(chrome/safari)似乎在仅更新实际更改的元素方面做得非常好(几乎就像浏览器具有虚拟 DOM/diffing 的实现,如React!)

0 投票
1 回答
127 浏览

cyclejs - CycleJs - 订阅具有不同类的同一元素的事件

我创建了一个类foo的元素。然后我打算在发生单击事件后将其类与bar交换。但是,当我单击元素时,订阅了foobar的单击事件的流被连续触发。结果,元素的类没有改变。如何订阅其类随时间变化的同一元素的事件?

这是链接:

https://jsbin.com/kanomonexa/edit?html,js,控制台,输出

这是示例代码:

0 投票
1 回答
285 浏览

javascript - virtual-dom diff 替换/删除而不是仅删除

使用virtual-dom hdiff方法。

给定:[a,b][b]

生成的diff补丁替换abthen removes b,而不是简单地删除a

RequireBin 示例。

结果是:

需要做什么来“对齐”img元素,使其不会被删除并重新添加?

0 投票
1 回答
1001 浏览

javascript - 跟踪 ReactJS 应用程序

我一直在使用AngularJS,它的结构是这样的,当用户浏览网站时,只有视图和路由发生变化,并且没有触发页面浏览量等(GTM 不是每条路由加载的)。

因此,在使用 AngularJS 网站时,我在 Google 分析中遇到了很多问题(甚至Angulartics也不太乐观)。

现在我正在阅读ReactJS,我非常热衷于将它与Laravel一起使用。我只担心 React 的整个虚拟 DOM 概念之后确实会产生类似的跟踪痛苦,因为这意味着每次用户登陆页面时可能不会加载 Google Tag Manager 容器。

有人在跟踪 React 应用程序时遇到问题吗?

0 投票
1 回答
76 浏览

javascript - React Virtual Dom 中涉及三棵树,还是只有两棵?

使用 React 虚拟 Dom,我理解子树部分,或者至少我认为我理解:React 只会从调用了 setState 的组件以及这些组件的所有子组件重新渲染。即,尚未调用其 setState 方法的组件,也不是已调用组件的子组件,它们不会被重新渲染。

我不清楚的部分是,当 React 在这些节点上进行协调过程时,它到底在比较什么?我相信在这一步我们有一个新生成的虚拟 DOM 树,但是它是否将它与旧的虚拟 DOM 树进行比较,然后将这些更改应用到实际的 DOM,或者是在新生成的虚拟 DOM 之间完成这个协调过程, 和实际的 DOM 直接?

根据上述答案,我可能会有一个后续问题。谢谢!