Facebook React
鼓励您将可变(state
)和不可变(props
)状态分开:
尝试使尽可能多的组件保持无状态。通过这样做,您可以将状态隔离到最逻辑的位置,并最大程度地减少冗余,从而使推理应用程序更加容易。
当状态更改时,应该调用setState
触发虚拟DOM diff,这仅在需要时才引起真正的DOM更新。
有 是
一种方法来触发DOM更新手动调用forceUpdate
,但它是灰心:
通常情况下
,你应该尽量避免的所有使用forceUpdate()
和只读this.props
,并this.state
在render()
。这使您的应用程序更加简单和高效。
但是,我看到的所有React + Backbone示例都 忽略了此建议, 并在其中存储模型和集合props
并调用forceUpdate
:
甚至React自己的示例也使用forceUpdate
:
但是,有没有更好的方法,它将带来什么好处?
皮特的答案很好。
骨干模型本质上是可变的,这(虽然本身不是问题)意味着重新渲染时,您将没有模型的旧版本可与之进行比较。通过shouldComponentUpdate
在组件上关键位置定义方法,使进行智能优化变得更加困难。(由于其他原因,例如实现undo,您也失去了轻松存储模型旧版本的能力。)
调用forceUpdate
仅跳过shouldComponentUpdate
并迫使组件重新呈现。请注意,调用render
通常很便宜,并且当输出render
更改时,React仍然只会接触DOM
,因此这里的性能问题并不常见。但是,如果您选择使用不可变数据(包括toJSON()
像Pete建议的那样传递原始模型属性对象),则强烈建议您使用。
Facebook React鼓励您将可变()和不可变()状态分开: 尽量让您的组件尽可能多的无状态。通过这样做,您可以将状态隔离到最符合逻辑的位置,并最大限度地减少冗余,从而更容易对应用程序进行推理。 当状态改变时,您应该调用来触发虚拟DOM diff,只有在需要时才会导致真正的DOM更新。 有一种方法可以通过调用手动触发DOM更新,但不鼓励: 通常情况下,您应该尽量避免使用,并且只从和中的读取。
问题内容: 是否可以使用Node.js在服务器端使用jQuery选择器/ DOM操作? 问题答案: 似乎有一个重大更新,导致原来的答案不再起作用。我找到了这个答案,解释了现在如何使用。我已经在下面复制了相关代码。 注意:原始答案没有提及你还需要使用安装
我需要一些目前在JavaFX中找不到的功能。比如机器人或托盘图标。 我知道这些工具确实适用于JavaFx应用程序。但是可以使用它们吗?有什么需要我考虑的吗?
问题内容: 抱歉,我缺乏知识,但我是新手,目前正在学习React。我只是想问一下是否要在我的React应用程序中使用Bootstrap 4,是否必须安装jQuery?我在某处读到,将jQuery与React一起使用是不行的。所以现在我想知道。谢谢回复。您的意见和建议是真正的赞赏。 问题答案: 某些功能(例如下拉菜单,模式)需要JS来操纵DOM,而引导程序则使用jQuery来处理DOM操纵。 但是,
问题内容: 我正在使用BeautifulSoup抓取网址,并且我有以下代码 现在在上面的代码中,我们可以用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以使其更有帮助吗? 问题答案: 不,BeautifulSoup本身不支持XPath表达式。 另一种库,LXML, 不 支持的XPath 1.
就像在主题中一样,我可以使用Thymeleaf布局方言和spring吗?我必须使用Spring标准方言吗? 网上有这么多的资料,这让我很困惑。 我已经开始使用布局方言,但我无法使用整个应用程序。 这是我的模板主文件: 以及控制器返回的我的示例主体文件: 但不幸的是,这段代码只适用于布局方言。 有人能帮我把代码转换成spring标准方言吗? 我的手机配置: