React JS中没有显式的数据绑定



Tom Occhino在他的演讲中说;无显式数据绑定"尤其是在React.js.中

看看这里的演示视频,然后转到他之前说过的7:30分钟。

为什么会有"没有明确的数据绑定">在React JS中?

首先我要告诉你,这是一个非常古老的视频,如果你正在学习React,我完全建议你找一个真正的视频,因为从那以后React已经改变了很多。如果你已经知道react tho,那么很高兴了解它的根源以及它是如何/为什么在引擎盖下这样工作的。

现在,关于";显式数据绑定";。我认为这个术语在本演示中的意义是将React与其他需要";显式地将数据源绑定到dom节点";以便它们进行双向交互。也就是说,如果dom发生变化(用户输入(,则相应地更改数据(更新变量(,如果数据发生变化(假设ajax调用带来了一些远程数据(,则会相应地更改dom(更新dom节点中的文本(。

在其他框架中,您需要用一些代码声明此绑定,双方的事件都会触发另一方的更改。

所以,为什么他会说react没有这种绑定,因为你可以在信息双向流动的情况下看到同样的行为。

从概念上讲,同样的事情正在发生,任何一端的变化都会引发另一端的变化。然而,如何实现这一点会发生什么变化
react中没有任何方法可以在变量发生变化时特别更新一个输入dom节点。相反,会触发整个重新渲染,计算将插入到dom中的新标记。这个标记(包含html的字符串(将输入以value="data"表示的新数据,从而更改您在dom中看到的内容。但是,当变量更改时执行的代码与dom节点完全没有关系(它们之间没有绑定(
反之,当您设置事件侦听器以在输入更改时更改变量时,react不会将任何事件侦听器绑定到该dom节点,而是在最顶端的节点上有一个事件侦听器,可以侦听整个dom树中的任何更改,并在事件源是否为您所插入的输入时立即通知您。但请注意,在您想要听到更改的确切节点中没有事件侦听器,因此dom节点和代码之间没有显式绑定。

话虽如此。我认为,如果你是javascript框架的新手,甚至可能会有点困惑,那么这并不重要。因此,如果这个概念还不清楚,不要太努力地理解它,除非你将这种行为与你熟悉的另一个框架进行比较。只要继续练习,一旦你写了一些反应形式,上面的解释就会很自然,很明显。

最新更新