【问题标题】:Is there a way to trigger a React update through Django? [closed]有没有办法通过 Django 触发 React 更新? [关闭]
【发布时间】:2019-11-14 23:09:34
【问题描述】:
我正在开发一个带有 Django 后端和 React 前端的应用程序。
Django 后端当前在收到文本消息时接收它们(无轮询)。我想知道如何使用来自文本消息请求(在 Django 中收到)收到文本(无轮询)的发布数据更新我的 React 应用程序,同时使用 Django Rest框架?
我在网上查过,但没有找到很多关于这个问题的信息。从我读到的内容看来,Redux 可能是答案,但我对 React 很陌生,并且只是简要地研究了 Redux,所以我不确定。同样从我在网上阅读的内容来看,由于学习曲线陡峭,人们说只有在必须时才使用 Redux,所以我想知道是否有更多经验的人可以为我指明正确的方向!
【问题讨论】:
标签:
django
reactjs
api
redux
django-rest-framework
【解决方案1】:
嘿,我不是一个反应型的人,我使用 vue,但我确实使用 DRF 和 Django。除非您使用 API 更新整个项目的状态,否则您不需要 redux。您可以使用简单的纯 JS onload 属性来实现这种类型的更新周期,该属性会触发 get 或 post 请求以更新页面。如果您需要它更即时地更新并且不想实现 redux,您可以使用状态挂钩更新“本地状态”(我相信反应调用它们)这将允许在调用运行时更新信息而不重新加载整个页面。
我使用 Axios 进行 api 调用,这将返回更新页面所需的 JSON 数据。我希望这不会给人一种傲慢的印象
【解决方案2】:
不要让事情变得复杂。
有两种方法可以做到这一点:
简单但不是很好
通过 React 向您的服务器发出 HTTP 请求,然后等待响应,然后根据响应更新您的视图。您可以在不同的时间间隔运行此 API 请求。
真实的方式
创建一个套接字连接,以帮助您的服务器在订阅时将消息直接发送到反应应用程序。可以使用 django django-channels 创建套接字。这将要求您为新的 ASGI 服务器重新配置服务器。
【解决方案3】:
无论是否使用 redux,这都不是问题。
只要组件状态或道具发生变化,您的反应组件就会重新渲染。
因此,您应该做的是在前端(React)上监听您的短信接收情况,并相应地更新您的状态或道具。