返回介绍

hydrate

发布于 2019-12-27 00:37:38 字数 1206 浏览 1197 评论 0 收藏 0

当某些业务有其特殊性,对性能要求比较苛刻,且有 SEO 需求时,客户端渲染方案就无法满足需求了,毕竟缺点也是非常明显的,首屏性能无法保障,纵使按需加载,依然很难保证首屏秒开。此时我们就需要考虑下服务端渲染了,服务端渲染由来已久,因为服务端渲染确实有非常多的益处。在 Rax 中可以参考下服务器端渲染方案。

相比于 renderhydrate 会最大程度的复用容器节点中已有的元素。以服务器端渲染为例,当在浏览器端 hydrate 一个组件时,Rax 会基于服务器端渲染的 HTML 结构,进行事件和状态的绑定,而非重新渲染元素。

rax-hydrate 已为你指定了默认的 driver-dom,用于服务端渲染,提供在初次渲染的时候,去复用原本已经存在的 DOM 节点,减少重新生成节点以及删除原本 DOM 节点的开销,来加速初次渲染的功能。如果要指定其他 driver,则可以在 render 方法的 options 中指定 hydratetrue

方法

hydrate(element, container, [callback])

参数

  • element 可以是任意需要渲染的 Rax 组件或字符串
  • container 为任意指定 DOM 渲染容器
  • callback 传入回调函数,将在组件被渲染或更新之后被执行

示例

import hydrate from 'rax-hydrate';

// MyComponent.jsx
function MyComponent(props) {
  return <h1>Hello world</h1>;
}

hydrate(<MyComponent />, document.body);

参考

服务器端渲染

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文