问题标签 [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.
cyclejs - Cycle.js (virtual-dom) 是否支持 React 的 refs 或 mithril 的 config 属性之类的东西?
换句话说,有没有办法在渲染后访问 DOM 元素?诸如鼠标焦点、代码荧光笔、动画之类的东西,它们是如何在 Cycle.js 中完成的?
dom - 如何持久化动态视图?
我正在使用 .NET MVC 4。假设我有一个 Pinterest 风格的社交媒体网站。用户可以固定内容(即图像),并通过在电路板上拖放图像来决定其针板的布局。
我如何保持他们所做的布局,以便在他们注销/登录时,内容与以前完全一样?所有具有关联 ID、类、样式等的 DOM 元素都需要保存。我还需要“自动保存”这些布局。
我能找到的最佳答案是这个:
但是这个家伙似乎正在保存实际的 HTML 标记。我认为这将很快变得非常不灵活。我认为我应该保留 DOM 树本身,或者可能采用 ReactJS 路线来设计我的视图,假设 ReactJS 允许我将其 VirtualDOM(或实际 DOM 的实例)保存到数据库中,然后它可以在日志中重新渲染-在。
我错过了什么?我已经为此搜索了高低,但在如何解决这个问题上没有太多运气。任何帮助深表感谢!
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 代码?
reactjs - 什么是 React.js 等效于 Jquery .html()
我正在尝试使用 React.js 将 Html 内容附加到 DOM 元素我想在 React 中执行它而不是使用 jquery 访问 DOM
var DOMNode = ReactDom.findDOMNode(this.refs.contentEdit); $(DOMNode).html(this.props.html);
我怎么能用纯粹的反应来写这个
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!)
cyclejs - CycleJs - 订阅具有不同类的同一元素的事件
我创建了一个类foo的元素。然后我打算在发生单击事件后将其类与bar交换。但是,当我单击元素时,订阅了foo和bar的单击事件的流被连续触发。结果,元素的类没有改变。如何订阅其类随时间变化的同一元素的事件?
这是链接:
https://jsbin.com/kanomonexa/edit?html,js,控制台,输出
这是示例代码:
javascript - virtual-dom diff 替换/删除而不是仅删除
使用virtual-dom h
和diff
方法。
给定:[a,b]
和[b]
生成的diff
补丁替换a
为b
then removes b
,而不是简单地删除a
。
结果是:
需要做什么来“对齐”img
元素,使其不会被删除并重新添加?
javascript - 跟踪 ReactJS 应用程序
我一直在使用AngularJS,它的结构是这样的,当用户浏览网站时,只有视图和路由发生变化,并且没有触发页面浏览量等(GTM 不是每条路由加载的)。
因此,在使用 AngularJS 网站时,我在 Google 分析中遇到了很多问题(甚至Angulartics也不太乐观)。
现在我正在阅读ReactJS,我非常热衷于将它与Laravel一起使用。我只担心 React 的整个虚拟 DOM 概念之后确实会产生类似的跟踪痛苦,因为这意味着每次用户登陆页面时可能不会加载 Google Tag Manager 容器。
有人在跟踪 React 应用程序时遇到问题吗?
javascript - React Virtual Dom 中涉及三棵树,还是只有两棵?
使用 React 虚拟 Dom,我理解子树部分,或者至少我认为我理解:React 只会从调用了 setState 的组件以及这些组件的所有子组件重新渲染。即,尚未调用其 setState 方法的组件,也不是已调用组件的子组件,它们不会被重新渲染。
我不清楚的部分是,当 React 在这些节点上进行协调过程时,它到底在比较什么?我相信在这一步我们有一个新生成的虚拟 DOM 树,但是它是否将它与旧的虚拟 DOM 树进行比较,然后将这些更改应用到实际的 DOM,或者是在新生成的虚拟 DOM 之间完成这个协调过程, 和实际的 DOM 直接?
根据上述答案,我可能会有一个后续问题。谢谢!