我在Elm中构建了一些应用程序,现在在React中构建了一些应用程序。
在React中,为我提供了一些功能,例如shouldComponentUpdate当我可能不希望频繁渲染组件时。
只是现在我在想:榆树为什么没有(或不需要)它们?
对于特定的重新渲染问题,Elm开箱即用使用虚拟DOM差异:如果其虚拟DOM发生更改,则实际DOM会相应地更新。这比直接处理DOM便宜得多。
有趣的是,Elm 在使用时Html.lazy的行为与React 在将组件定义为函数时的行为相同(即,不是来自继承自Component或的类的对象PureComponent):由于您不依赖副作用(生命周期函数是一个合适的示例),因此相同的功能输入,您的组件将始终产生相同的输出。这样,如果Elm或React的输入有所改变,则仅需要重新渲染您的组件即可。因此,通过这种方式,您不必担心是否需要重新渲染组件:Elm会负责。
那么,这些生命周期方法呢?例如:
shouldComponentUpdate:如前所述,在使用时Html.lazy,Elm会检查您的输入是否已更改:如果未更改,则在功能上下文中显然不需要重新渲染。否则,Elm将比较其虚拟DOM。但是,在两种情况下,都不需要告知Elm是否需要渲染。componentWillReceiveProps:几乎与您的update功能相对应。componentDidMount:我不认为这等效:您的组件存在并被渲染,或者不存在。这非常类似于将函数用作组件。| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |