我正在使用React.js和asp.net mvc 4开发一个网站,我打算使用Flux作为我的前端架构,但我遇到了一些问题,并对使用Flux感到非常困惑:
一开始,我认为Flux在我的网站上将是一个完美的前端架构,但在我阅读了很多关于Flux的文章之后,我发现他们几乎全部使用NodeJ,甚至是facebook团队的演示,这意味着他们都在服务器端执行React.js / Flux代码的渲染工作,对吗?但是我如何在客户端使用Flux,我的意思是在用户的浏览器中?
我很困惑,如果我将react.js / flux视为客户端解决方案,我是错的吗?如果我没有错,但为什么他们都将它们与NodeJs和ES6(如facebook Dispatcher.js)一起使用,那就是好在服务器端,但客户端呢?大多数用户broswers不支持ES6。我尝试使用Babel将Dispatcher.js从ES6转换为ES5,但es5版本有一些错误并且无法正常工作。
我还发现了一些声称支持客户端的Flux工具,比如fluxxor,但在写这篇文章之前我没有机会尝试它,因为我太困惑了。
我希望有人能帮助我弄清楚这些问题。
PS。对不起我的英语,如果你不理解我的话,请告诉我,我会解释。
答案 0 :(得分:0)
React是一个客户端库。您可以使用虚拟任何后端语言为React App提供服务。很多例子都是节点的原因是因为设置简单快捷。
你应该试试这个教程: https://facebook.github.io/react/docs/getting-started.html
这是非常直接的,并不需要节点。 也许你应该尝试在开始时静态服务React应用程序,以更好地理解React本身。
由于Babel,ES6适用于浏览器。如果您认为Babel有任何问题,您可能需要先使用它的REPL来感受它:https://babeljs.io/repl/
答案 1 :(得分:0)
这个想法是代码可以在客户端和服务器上运行(通用js,以前称为同构javascript(虽然它比使用服务器端渲染等更进一步),
有许多助焊剂实现回流是目前最有希望的,我使用martyjs(但他们停止了开发,它将由alt接管)但是即使对于通量架构,你只需要调度员/事件发射器和一些想法:D,
Shorty说你可以安装npm软件包(flux,react,babel等),但是你需要像http://browserify.org/(with remtify这样的东西或者Webpack,以便在浏览器中运行它们。你不需要在节点js“捆绑后”运行它们,webpack / browserify将捆绑代码,以便它可以在浏览器中独立使用
https://github.com/christianalfoni/flux-react-boilerplate/< - ther是一些样板文件,为如何捆绑代码提供了一些很好的指导。
答案 2 :(得分:0)
我想你想要:
$ bower install flux
然后你可以做这样的事情(如果使用require.js):
require(
['bower_components/flux/dist/Flux'],
function(
Flux )
{
var dispatcher = new Flux.Dispatcher();
dispatcher.register(function(payload) {
if (payload.actionType='test') {
console.log('i got a ', payload);
}
});
dispatcher.dispatch({
actionType: 'test',
otherData: { foo: 'bar' }
});
});
(此答案使用:https://bower.io/,https://libraries.io/bower/flux,http://requirejs.org/)