首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >React + SSR:处理需要先获取数据的组件的正确方法

React + SSR:处理需要先获取数据的组件的正确方法
EN

Stack Overflow用户
提问于 2020-10-28 23:53:51
回答 1查看 139关注 0票数 1

我目前有一个React应用程序,我想使用SSR。除了一个组件之外,所有组件都是非常静态的内容,这使得SSR变得非常简单。现在,除了组件之外的所有内容都呈现得很好。

我的问题是,如何渲染这个需要首先获取数据的组件?因为它是一个呈现的复杂SVG,所以我的想法是,一旦数据传入,让它“更新”是一个糟糕的举动,如果没有数据(带有错误消息),它就不存在会更好。

因此,我的计划是:我可以向组件添加一个属性,以传递来自父组件的数据,而不是仅将其作为内部状态。因此,如果传递了数据,则不需要组件中的fetch请求。从那里我可以做的是获取应用程序的静态包输出,当页面被请求时,服务器将请求正确的数据,就像组件一样。一旦接收到数据,服务器就可以使用regex从捆绑包中获取组件,将数据作为道具添加,呈现组件,并将其与已呈现的其余静态内容放回一起。

这是正确的方法吗?这感觉有点复杂,但可能就是这样做的。我没有把握。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-04 12:28:57

你的直觉是正确的。在当前的React (17.0)中,在组件内部使用数据获取进行SSR是相当麻烦的。

需要在概念层面上实现的是,所有数据依赖关系都需要预先知道,即。在调用ReactDOM的render之前。这样,人们可以以同步的方式访问数据,从而允许在服务器上进行一遍渲染。

我不太理解你的想法“用正则表达式从捆绑包中抓取组件”。解决数据依赖问题的一种方法是将数据从根组件注入React树(即,ReactDOM.renderToString(<App componentStaticData={data} />)),并让数据相关组件意识到这样一个事实,即它只能从那里获取数据,而不是进行(异步)调用。需要注意的是,useEffects不是在服务器上执行的。

获取所有数据依赖关系的另一个想法是进行两遍渲染。首先使用一个方法来收集所有使用的资源,然后等待它们的完成,并将它们作为静态数据注入到send传递中。

第三种方法是使用React框架之一,它提供了开箱即用的SSR。你可以看看Next.js或Gatsby。根据您的设置,这可能是实现SSR的最简单或最困难的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64582977

复制
相关文章
Rasa NLU 实践
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/11/18
1.4K0
Rasa NLU 实践
使用Botkit和Rasa NLU构建智能聊天机器人
我们每天都会听到关于有能力涉及旅游、社交、法律​​、支持、销售等领域的新型机器人推出的新闻。根据我最后一次查阅的数据,单单Facebook Messenger就拥有超过11000个机器人,然而到我写这篇文章的时候,估计又已经增加了几千台。第一代的机器人由于它们只能根据对话中的关键字来分析有限的一些问题,因此显得十分的愚笨。但是随着像Wit.ai, API.ai, Luis.ai, Amazon Lex, IBM Watson等机器学习服务和NLP自然语言处理(Natural Language Processing)的商品化,促进了像donotpay 和 chatShopper这样的智能机器人的发展 。
花落花飞去
2018/01/29
5.8K0
使用Botkit和Rasa NLU构建智能聊天机器人
什么是Rasa智能机器人?如何与LLM结合?
之前写过一篇介绍用Rasa结合类似于GPT这种LLM应用的项目:RasaGpt——一款基于Rasa和LLM的聊天机器人平台
山行AI
2023/06/14
6.3K0
什么是Rasa智能机器人?如何与LLM结合?
rasa 介绍文档
1. Rasa介绍 1.1 架构 Rasa Open Source: NLU (理解语义) + Core (决定对话中每一步执行的actions) Rasa SDK: Action Server (调用自定义的 actions) Rasa NLU 理解用户的对话,提取出感兴趣的信息 (如意图分类、实体提取等),以pipeline的方式处理用户对话,在config.yml中配置。 Rasa Core 根据NLU输出的信息、以及Tracker记录的历史信息,得到上下文的语境:预测用户当前最可能表达的
小爷毛毛_卓寿杰
2022/05/10
2.5K0
rasa 介绍文档
Rasa 聊天机器人专栏(二):命令行界面
rasa init命令将询问你是否要使用此数据训练初始模型。如果你回答否,则models目录将为空。
磐创AI
2019/12/12
3.9K0
Rasa 聊天机器人专栏(二):命令行界面
Rasa 聊天机器人专栏(一):基本原理介绍
本页面解释了用Rasa构建助手的基本原理,并展示了Rasa项目的结构。你可以在这里测试它,而不需要安装任何东西。你也可以安装Rasa并在命令行中执行。
磐创AI
2019/12/10
3.3K0
Rasa 聊天机器人专栏(一):基本原理介绍
Rasa Core实践 报时机器人
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/01
1.2K0
用 TensorFlow_text(3) 构建 Rasa 中文分词 tokenizer
前一段时间简单了解 tensorflow_text 简单中文分词使用[1],再结合 Rasa 的学习,就萌生出模仿 Rasa 的结巴分词 tokenizer,造一个 Tensorflow_text_tokenizer。
coding01
2021/02/24
1.5K0
Rasa 聊天机器人专栏(五):模型评估
机器学习中的标准技术是将一些数据作为测试集分开。你可以使用以下方法将NLU训练数据拆分为训练集和测试集:
磐创AI
2019/12/23
2.3K0
Rasa 聊天机器人专栏(五):模型评估
Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程
Rasa Stack 是一组开放源码机器学习工具,供开发人员创建支持上下文的人工智能助理和聊天机器人:
磐创AI
2019/05/15
1.9K0
基于RASA的task-orient对话系统解析(一)
由于换工作以及家里的事,很久没有写东西了。最近因为工作内容,需要做任务型对话系统的相关研究和开发。趁此机会,总结一下rasa框架的基本内容,包括基本架构,代码级别的分析,以及使用上的一些tips。需要注意,本文不会详细描述如何简单构建一个小demo的流程,这个在rasa的doc和一些博客上都有很好的例子,我这里就不重复引用了。贴一些链接,有兴趣的同学可以去这些地方看看。
AINLP
2019/08/28
3.2K0
基于RASA的task-orient对话系统解析(一)
Rasa 聊天机器人专栏开篇
Rasa 是最火的聊天机器人框架,是基于机器学习和自然语言处理技术开发的系统。Rasa 中文官方文档包括聊天机器人,上下文管理,多伦对话,意图识别,填槽,中文聊天机器人开发必备手册。
磐创AI
2019/12/06
2.8K0
Rasa 聊天机器人专栏(六):验证数据
要验证域文件,NLU数据或故事数据中是否存在任何错误,请运行验证脚本。你可以使用以下命令运行它:
磐创AI
2020/03/04
7350
北邮张庆恒:如何基于 rasa 搭建一个中文对话系统 (有源码视频)| 分享总结
对话系统是自然语言处理的一个热门话题,而自然语言理解则是对话系统的关键组成部分,现有的很多自然语言理解工具往往以服务的方式获取(Google 的 API.ai, Facebook 的 Wit.ai 等),使用这些服务往往需要向服务提供商提供自己的数据,并且根据自己业务调试模型很不方便。本文为大家介绍了一种新方法,即如何基于 rasa 搭建一个中文对话系统。 在近期 AI 研习社举办的线上免费公开课上,来自北京邮电大学网络技术研究院的张庆恒分享了基于 rasa nlu 构建自己的自然语言理解工具,并结合 r
AI研习社
2018/03/16
4.7K0
北邮张庆恒:如何基于 rasa 搭建一个中文对话系统 (有源码视频)| 分享总结
RasaGpt——一款基于Rasa和LLM的聊天机器人平台
在ChatGpt引领的AI浪潮下,一大批优秀的AI应用应运而生,其中不泛一些在某些行业或领域中探索AI技术或应用落地的案例。不得不说,AI正在重塑各个行业。众所周知,Rasa是一个非常优秀的,用于构建开源AI助手的框架,它允许开发人员创建自然语言对话系统,包括聊天机器人、语音助手和智能助手。本文介绍的是一个基于Rasa和Langchain之上,通过将LLM的能力赋予Rasa建立的聊天机器人平台。
山行AI
2023/06/14
4.5K0
RasaGpt——一款基于Rasa和LLM的聊天机器人平台
Rasa 基于规则的对话管理: 天气预报机器人
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/13
2.1K0
Rasa 基于规则的对话管理: 天气预报机器人
Rasa 基于知识库的问答 音乐百科机器人
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/25
1.4K0
Rasa 基于知识库的问答 音乐百科机器人
Rasa 使用ResponseSelector实现FAQ和闲聊
learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code
Michael阿明
2022/12/01
8970
Rasa 使用ResponseSelector实现FAQ和闲聊
Awesome-Chinese-NLP:中文自然语言处理相关资料
推荐Github上一个很棒的中文自然语言处理相关资料的Awesome资源:Awesome-Chinese-NLP ,Github链接地址,点击文末"阅读原文"可直达:
AINLP
2019/10/10
5.7K1
Awesome-Chinese-NLP:中文自然语言处理相关资料
Rasa 聊天机器人专栏(八):在Docker上运行Rasa
这是如何使用Docker构建Rasa助手的指南。如果你之前没有使用过Rasa,我们建议你先Rasa教程开始。
磐创AI
2020/03/04
5.8K0

相似问题

Rasa NLU模型

11

Rasa nlu服务器故障

369

数据隐私Rasa NLU

168

Rasa核与Rasa nlu的区别

510

Rasa NLU安装问题

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档