【问题标题】:Does React.js require app to be a single pageReact.js 是否要求应​​用程序是单个页面
【发布时间】:2015-11-14 20:16:27
【问题描述】:

我正在使用 React.js,我的问题很简单:如果我使用 React,我的应用程序是否必须是单页应用程序?

如果没有那么我如何控制它们之外的组件?通过通量?还有其他标准方法吗?

如果是,那么是否有任何库可以在客户端为 React 执行权限/访问验证?

非常感谢!

【问题讨论】:

  • “客户端的权限/访问验证”是什么意思?您希望在服务器端完成任何用户身份验证。
  • 另外,“控制组件之外的组件”是什么意思?
  • 不,应用程序不必是单页。
  • 对不起,permissions/access 表示授权。基本上,当您转到页面并且不允许看到它时,您将被重定向到登录页面或看到“访问被拒绝”页面 - 类似这样的角度:github.com/Illniyar/visor。通过从外部进行控制,我的意思是 API,如果它不是 SPA,我可以使用它在页面范围内对这些控件执行某些操作。

标签: reactjs single-page-application flux


【解决方案1】:

React 应用程序不必是单页应用程序。 React 为您提供了一种根据具有特定呈现逻辑的类对 HTML 进行建模的方式,但不会强加任何类型的特定应用程序逻辑,例如单页与多页。

我不太确定我是否理解您的其余问题,但我认为您实质上是在问如何将 React 应用程序建模为多页面应用程序。有很多方法,但是,一种是像这样构造文件:

./app --> main page for your app
    ./app/page1/ --> page 1 of your app
    ./app/page2/ --> page 2 of your app
    ...

这样,每个“页面”都将包含一个自包含的反应项目。您的主应用程序页面可以包含加载这些页面的超链接,或者您可以在 javascript 代码中异步加载它们。

编辑:评论中阐明的问题是如何因页面上的某些操作而使反应组件发生变化

假设react component B 包含在react component A 中。用户按下包含在react component B 中的button B,当按下时,在react component B 中调用callback B,并且此单击应该触发react component A 中的某些操作。 callback B 应该以某种方式通知 react component A 事情发生了变化。

这是您可以选择做什么的地方。您可以让react component B 发出react component A 监听的更改(并相应地重新渲染),或者您可以使用FLUX 模型。在FLUX 模型中,react component B 将向某个状态存储发出状态更改,这将触发一个事件被发出。 react component A 需要为此事件设置事件回调,当react component B 发出它时,react component A 可以对其作出反应。

【讨论】:

  • 感谢您的回复。让我澄清一下我的意思。由于我对 React 没有太多经验,所以我想到了一个像 jQuery 插件这样具有 API 的组件。如果我的页面是在后端组装的,比方说,我按下了一个按钮,那么我如何让 React 组件为我做点什么?它不能像 jQuery 插件那样暴露 API。我知道 FLUX 可能有可能,但这是唯一的方法。我确定我不明白这里的某些东西,但我不确定是什么......
  • 你的意思是每个页面都有它自己的组件吗?我理解你的意思吗?
  • 是的,在这个模型中,每个页面都有自己的组件(很可能有多个子组件)。我将回答您关于如何对事物做出反应的第二个问题,作为对我原始答案的编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2020-04-18
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
相关资源
最近更新 更多