问题 React.js是否要求app成为单个页面


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

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

如是 然后是否有任何库在客户端执行React的权限/访问验证?

非常感谢!


6301
2017-08-21 01:17


起源

你是什​​么意思“客户端的权限/访问验证”?您希望任何用户身份验证都在服务器端完成。 - Mark
你的意思是“控制它们之外的组件”是什么意思? - Mark
不,该应用程序不必是单页。 - Mark
对不起,权限/访问意味着授权。基本上,当你转到页面而你不被允许看到它然后你被重定向到一个登录页面或看到“访问被拒绝”页面 - 像这样的角度: github.com/Illniyar/visor。通过从外部控制我的意思是API,如果不是SPA,我可以使用它在页面范围内对这些控件做一些事情。 - Dmitry Istomin


答案:


反应应用程序不必是单页面应用程序。 React为您提供了一种在具有特定渲染逻辑的类方面建模HTML的方法,但没有强加任何类型的特定应用程序逻辑,如单页面和多页面。

我不太清楚我理解你的其他问题,但我认为你基本上是在问 如何将反应应用程序建模为多页面应用程序。但是,有很多种方法可以像这样构建文件:

./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。用户按下 button B 包含在 react component B,当按下时,调用 callback B 在 react component B,这个点击应该触发一些动作 react component Acallback B 应该以某种方式通知 react component A 事情发生了变化。

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


13
2017-08-21 01:28



谢谢你的回复。让我澄清一下我的意思。由于我对React没有太多经验,我想到一个像jQuery插件这样的组件,它有API。如果我的页面是在后端组装的,比方说,我按下一个按钮然后如何让React组件为我做一些事情?它不能像jQuery插件那样公开API。我知道FLUX可能有可能,但这是唯一的方法。我相信我在这里不明白,但我不确定是什么...... - Dmitry Istomin
你的意思是每个页面都有它自己的组件吗?我理解你了吗? - Dmitry Istomin
是的,在这个模型中,每个页面都有自己的组件(很可能有多个子组件)。我将回答你的第二个问题,即如何对“反应”做出反应,作为对原始答案的编辑 - nmio
谢谢!我想我得到了我的问题的答案。 - Dmitry Istomin