我正在使用带有Django后端和React前端的应用程序。
Django后端当前接收到收到的文本消息(无轮询)。我想知道如何在使用Django Rest的同时使用来自文本消息请求(在Django中接收到)的发布数据更新我的React应用程序(在Django中收到)在收到文本后(无轮询)框架?
我已经上网了,但是我没有找到很多有关此问题的信息。从我阅读的内容来看,似乎可以使用Redux来解决问题,但是我对React还是很陌生,只是对Redux进行了简要介绍,所以我不确定。另外,根据我在网上阅读的内容,由于学习曲线陡峭,人们说只有在您必须时才使用Redux,所以我想知道是否有更多经验的人可以为我指明正确的方向!
答案 0 :(得分:1)
嘿,我不是使用vue的反应人员,但我确实使用DRF和Django。除非您正在使用API更新整个项目的状态,否则您不需要redux。您可以使用简单的普通JS onload属性来实现这种类型的更新周期,该属性会触发获取或发布请求以更新页面。如果您需要它来立即更新,而又不想实现redux,则可以使用状态钩子来更新“本地状态”(我相信这是react调用它们的原因),这将允许在不运行调用的情况下更新信息。重新加载整个页面。
我将Axios用于api调用,这将返回更新页面所需的JSON数据。我希望这不会因为赞助人而引起,我不知道您的技能水平是什么,我会尽力回答,以便任何人都可以得到。
答案 1 :(得分:1)
不使事情复杂化。
您可以通过两种方式执行此操作:
简便但不理想
通过React向您的服务器发出HTTP请求,然后等待响应,然后根据响应更新您的视图。您可以在不同的时间间隔运行此API请求。
真实方式
创建一个套接字连接,该套接字连接将帮助您的服务器在订阅后直接将消息发送到react应用程序。可以使用django django-channels
创建套接字。这将要求您为新的ASGI服务器重新配置服务器。
答案 2 :(得分:1)
使用或不使用redux都不应该成为问题。
只要组件的状态或道具已更改,您的反应组件就会重新渲染。
因此,您应该做的是在前端(React)上监听短信的接收,并相应地更新状态或道具。