问题标签 [hydration]

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 投票
0 回答
33 浏览

reactjs - 水合后 React Resize

我在Popover中有一个服务器端的水合 React.Component

问题是水合后的水合成分在视图中滑出视图。

你应该怎么做才能让 Hydrated-Components 在视图中完全呈现?

0 投票
2 回答
551 浏览

python - 为什么我无法使用 TWARC/hydrator 应用程序在 24000 个推文 ID 中重新水化超过 18 条推文?有人知道更好的方法吗?

我对推文文本的补水有疑问。任何帮助,将不胜感激。

这是我的数据来源;这是关于电晕推文的:

数据集来源

我已经从中下载了照片中的数据集(名为 01-feb-2020)

我的数据集的照片

然后,我过滤这些数据以显示来自“GB”的唯一推文,几乎是 24000 条推文

我的推文 ID 总数

我已经使用 twarc 来补充我的推文文本,如下所示:

首先,使用 pip 安装 twarc

然后,在命令行中输入:twarc configure

然后,消费者间密钥和秘密密钥

然后,写一个命令:

但是,我从 24000 条推文 id 中只得到 18 条推文

我能补水的所有东西

我也使用了 hydrator 应用程序,但结果是一样的。我究竟做错了什么?从大量数据中提取 18 个是否合乎逻辑?任何关于滋润推文文本世界的新建议都值得赞赏。(对不起我的英语不好,我不是天真的说话者)

0 投票
0 回答
70 浏览

reactjs - React Hydration - 我们如何对在构建时不完全可用的动态页面进行水合?

我正在使用 Express 和 React 构建网站。我使用服务器端渲染现在我正在寻找一种解决方案来补充我的最终 HTML。问题是在构建时,该页面仍然不可用。页面仅以主组件开始,Express 中间件可以向该主组件添加/删除子组件。这意味着我们只知道请求结束时页面的最终结构是什么

有什么方法可以使该页面水化并使 React 在客户端浏览器中可用?

太感谢了

0 投票
0 回答
73 浏览

symfony - 如何在已水合实体的集合中添加项目

在 Sylius 中,可翻译实体使用 anArrayCollection来处理翻译,例如实体在属性中Product具有实体。ProductTranslationtranslations

给定数据库中一个已经水合的实体$object,我们在$object->translations.

现在,我想将另一个现有的翻译添加到我$object的数据库中。

使用此代码,$translation实体与$object(相同的对象引用)相同,但集合中没有新的语言环境,我不明白为什么。我认为这与 Doctrine 的水合作用有关,但我不知道背后的逻辑。

我的查询没问题,因为如果我强制 mode AbstractQuery::HYDRATE_ARRAY,我的数组包含正确的数据。我确实需要一个水合对象,因此通过将新翻译添加到集合来更新现有实体$object将是完美的。

0 投票
1 回答
791 浏览

firebase - SSR 水合 Vue js Nuxt

我已经被 Vue.js 的水合问题困住了 2 多天了,似乎找不到解决方案。

语境:

我有一个页面,我想在服务器端呈现一些文章,以便将它们放在我的源代码中以获得更好的 SEO。这些文章从我的 Firestore 加载,然后发送到要显示的子组件。

这是我的页面组件:

index.js(更新)

This is were I call my loadArticles function:

这是 loadArticlesFunction:

如文档中所述,我已将 v-for 封装为仅客户端。

为了调试,我设置了各种断点,以便能够从 hydra 函数中读取 elm 对​​象,并尝试在这个 html 对象中找到错误消息,但没有运气。我还尝试使用 asyncData 而不是 fetch 但无法访问它。我最近的测试是使用一个承诺来强制 Nuxt 等待获取完成,但也没有运气。

我认为问题是在我的提取结束之前执行了mounted,从而导致了这个错误。

编辑

如果我在 catch 中添加一个 console.log,我会得到:

所以如果我注释掉这一行:

一切正常。

但现在我不知道为什么 new Date 在这里不起作用......以及用什么替换它......

0 投票
0 回答
2254 浏览

server-side-rendering - 使用 Svelte 进行动态服务器端渲染。如何在客户身上补水?

假设我们有一个网页,其 HTMLlang属性根据Accept-language请求的标头动态设置。页面的正文也是特定于语言的。我想出了什么:

在哪里Page.svelte

一切正常。但现在我想让页面交互。我Body.svelte在 App 中使用并设置hydrate选项:

如果不设置此选项,内容将呈现两次。使用选项集,我们在浏览器中出现错误:

根据文档,我们可以将选项传递给编译器:

它说:

hydratable: true为 <head> 中的每个元素添加一个标记,以便组件知道它负责在水合期间删除哪些元素

但我没有观察到任何标记。它对客户端渲染没有影响,并且错误仍然存​​在。

我错过了什么吗?

0 投票
0 回答
75 浏览

reactjs - 在客户端上为动态页面(使用 CDN 缓存时)执行 SSR 和水合单页应用程序是否有意义?

我有一个使用 React + Redux + Firebase 构建的博客网站(单页应用程序)。

我一直在考虑s-maxage为我的页面实现 SSR 和 CDN 缓存(1 天)。

我将为所有页面请求执行 SSR。只有当我能够在这些响应上使用 CDN 缓存时才有意义,对吧?目前,我只将 CDN 缓存用于静态资产,例如index.html, *.js, etc.

注意:我已经为机器人做了 SSR。并且这些响应没有被缓存在任何地方。每个访问我的页面的机器人都会获得页面的全新渲染。

例如:

  • 用户点击/blog/post-a
  • 用户将获得一个完整呈现的HTML页面以及一个 Redux 状态。
  • 那我打电话ReactDOM.hydrate()

但是,如果在1 dayCDN 缓存期间,我使用管理 UI 更新了数据库上该页面的内容,该怎么办?

那么该缓存将是陈旧的,即使从s-maxage角度来看它仍然有效。

那时会发生什么?

选项1

用户在补水前后会看到内容闪烁。这是最好的情况,因为此时帖子可能已被删除,并且在水合完成后,用户会看到旧内容和未找到的页面之间闪烁。

选项#2

我可以在处理水合过程时以某种方式显示微调器/加载器,并且仅在完成后才显示内容。但是,IMO,这基本上首先消除了 SSR 的好处。它基本上是带有额外步骤的 CSR(客户端渲染)。

选项#3

编辑特定页面后,我可以从我的 CDN 中使用某种 API 来清除/使该特定缓存无效。然后它必须为下一个请求重新渲染。

Obs:我无法使用选项#3。我的 CDN 是您从 Firebase Hosting 获得的。我只能选择一次清除/使整个 CDN 缓存失效。我不能选择特定的缓存来失效。

我认为这三个选项中的任何一个都不理想。所以我要问:为需要补水的单页应用程序的动态内容进行 SSR 真的有好处吗?人们通常会这样做吗?他们通常遵循三个选项中的哪一个?有没有更好的第四种选择?

0 投票
0 回答
65 浏览

reactjs - 当你调用 ReactDOM.hydrate(),它会运行 App 内部的 useEffect() 吗?

如果此应用程序正在服务器(SSR)上呈现并在客户端上水合,那么这些效果会在ReactDOM.hydrate(<App/>, rootDiv)调用时在客户端上运行吗?我的意思是,它们会像在普通客户端渲染中一样运行吗?

0 投票
1 回答
34 浏览

reactjs - 如何正确触发 React JS 中服务器渲染文本字段的焦点事件

有时从服务器呈现的文本字段组件不会触发附加的 onFocus 事件处理程序。原因是,在服务器端呈现的文本字段组件在客户端还没有水合,用户试图事先专注于该组件。

0 投票
2 回答
433 浏览

vue.js - 防止组件在 Vite/Vue 3 SSR 组件补水上闪烁

我有一个在 SSR 中渲染得很好的组件,但是当 Vue 3 进行水合时会闪烁(我认为)。

我究竟做错了什么?我一定已经尝试了 50 种设置方式this.recipes(在所有可能的生命周期挂钩中),但所有这些方式仍然会导致水合闪烁。

我正在使用 Vite(如果重要,可以使用 vite-ssr 插件)/Vue 3 SSR。请注意,闪烁后的组件似乎与 SSR 生成的版本相同,该版本在页面加载时显示(并且在源代码中)。