问题标签 [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 回答
348 浏览

reactjs - React 组件和 ReactElement 之间有什么关系?

我正在阅读使用以下词汇表的 React 文档的一部分,但我无法弄清楚它们之间的关系:

  • 一个组件
  • 组件的实例
  • 组件的支持实例
  • 一个虚拟 DOM 元素
  • 一个ReactElement

它们是否以及如何相关?

0 投票
2 回答
53 浏览

reactjs - 反应嵌套组件传递内置函数(无通量)

我正在尝试通过道具传递内置的反应功能并尝试设置状态,但我得到this了未定义的!

我试过这样的事情:

index.js

someOtherComponent1.js

我的问题是每当我传递一个内置函数时,即反应原型this中存在的函数总是未定义的。

如何通过 props 发送内置函数?

0 投票
2 回答
946 浏览

dom - ClipboardJS with React, using document.getElementById()

Originally, I had it working fine.

Then I did this and now I can't get it to work

ClipboardField.js

Field.js

If you take the code out of ClipboardField and into Field it works. It's mostly, how do I use document.getElementById() in my parent component to find something in my child?

Their examples:

https://github.com/zenorocha/clipboard.js/blob/master/demo/constructor-selector.html#L18

https://github.com/zenorocha/clipboard.js/blob/master/demo/constructor-node.html#L16-L17

https://github.com/zenorocha/clipboard.js/blob/master/demo/constructor-nodelist.html#L18-L19

0 投票
0 回答
336 浏览

javascript - React setState() 调用不会更新 UI

我正在学习 React,并且正在learnyoureact从 NodeSchool 学习模块。到目前为止,我对 React 的理解是将 React 组件渲染为虚拟 DOM,并让 React 处理 UI 更改(从 SO帖子中读取)。我假设这是正确的。

离开这个,当我添加数据并调用 setState 时,UI 会更新并添加一个表格行。为什么当我调用 setState() 并删除一些数据时,UI 什么也不做?当我将数据登录到控制台时,我可以确认数据正在被删除。

当我在 2 行的原始表中添加 2 件事时,我得到 4 行: 在此处输入图像描述

然后当我点击X按钮并尝试删除时,控制台显示我确实删除了,但 UI 不会更新。还有 4 个表格行。 在此处输入图像描述

我已经逐行检查,后来甚至复制并粘贴以确保。我从这个repo中提取了。

如果我不应该手动删除表格行,如何删除它们?

0 投票
1 回答
235 浏览

javascript - React 触发虚拟 DOM 输入的 onChange 事件与常规 DOM 中的输入不同。为什么是这样?

在虚拟 DOM 中,每次输入内容发生变化时都会触发 onChange。在常规 DOM 中,仅当输入元素模糊时才会触发 onChange。

链接到说明行为的 GIF

示例项目:

上述演示的源代码

为什么 React 会为虚拟 DOM 元素触发不同的 onChange 事件?

0 投票
1 回答
252 浏览

react-dom - 将 Maquette 渲染为 HTML

我想获取我的 Maquette 视图的 HTML 字符串表示形式,以便将其预呈现为静态 html 文件。React 有 ReactDOMServer.renderToString。Maquette VNodes 有类似的方法吗?

0 投票
1 回答
96 浏览

javascript - 当我同时设置更改状态和未更改状态时,React Virtual DOM 是如何工作的?

React Virtual DOM 在旧的内存 DOM 和新的内存 DOM 之间有何区别?具体来说,我只是设置了更改的状态与我设置了更改的状态和未更改的状态之间有什么区别吗?set Object 和 Number 之间有什么区别吗?

例如:当前状态是{name: 'Eric', id: '1234567890', others: {other1: 1, other2: 2}}。差异结果this.setState({name: 'Tiger'})与差异结果相同this.setState({name: 'Tiger', id: '1234567890', others: {other1: 1, other2: 2}})吗?

0 投票
3 回答
34993 浏览

angular - Angular 2 使用 Shadow DOM 还是虚拟 DOM?

Angular 2 使用什么来更新 DOM。是影子 DOM 还是虚拟 DOM?Angular 1 中有这样的概念吗?

0 投票
1 回答
241 浏览

virtual-dom - 我可以将 HyperX 与 Snabbdom 一起使用吗

HyperX是一个模块,它将标记的模板文字翻译成一个hyperscript函数,如virtual-dom.

Snabbdom使用类似超脚本的函数来构建它的 vdom,但它的第二个参数是不同的。而不是属性,它的属性被各种“模块”使用;

是否可以像这样使用hyperxwithsnabbdom的超标函数:

0 投票
1 回答
795 浏览

angularjs - 虚拟 dom 和脏检查之间的性能差异