Reactjs flux应该如何处理路由?
我是个新手,对流量更是陌生,我在谷歌上很难找到关于如何处理路由和流量的信息 我正在使用Meteor堆栈,路由器(FlowRouter)有一个命令式API,用于使用Reactjs flux应该如何处理路由?,reactjs,reactjs-flux,flux,Reactjs,Reactjs Flux,Flux,我是个新手,对流量更是陌生,我在谷歌上很难找到关于如何处理路由和流量的信息 我正在使用Meteor堆栈,路由器(FlowRouter)有一个命令式API,用于使用FlowRouter.go('routeName,params)转换路由 我应该创建一个链接组件来触发一个动作,并且动作创建者调用thisFlowRouter.go方法吗 此外,它还为参数提供了一个反应式API,因此我可以观察它,并在发生变化时触发操作(以便存储可以更新)。我在最近的一个项目中使用Flux时采用的一种方法是使路由层成为另
FlowRouter.go('routeName,params)
转换路由
我应该创建一个链接组件来触发一个动作,并且动作创建者调用thisFlowRouter.go
方法吗
此外,它还为参数提供了一个反应式API,因此我可以观察它,并在发生变化时触发操作(以便存储可以更新)。我在最近的一个项目中使用Flux时采用的一种方法是使路由层成为另一个存储。我制作了一个包含React View组件文件、路由器存储和路由器操作的文件夹。我提供的资料来源如下: 反应视图文件:
var React = require('react');
var storeMixin = require('project/shared/helpers/storeMixin');
var RouterStore = require('../RouterStore');
module.exports = React.createClass({
mixins: [storeMixin(RouterStore)],
getInitialState: function () {
return {RouterStore: RouterStore};
},
getComponentClass: function (route) {
switch (route) {
case 'help':
return require('project/app/components/Help');
default:
return require('project/FrontPage/FrontPage');
}
},
render: function () {
var props = {
route: this.state.RouterStore.get('route'),
routeParams: this.state.RouterStore.get('params')
};
var Component = this.getComponentClass(props.route);
return <Component {...props} />;
}
});
操作文件:
var constants = require('./constants');
var dispatch = require('project/shared/helpers/dispatch');
var _ = require('underscore');
module.exports = {
navigate: function(fragment, trigger, replace) {
dispatch(constants.ROUTE_NAVIGATE, {
fragment: fragment,
trigger: _.isUndefined(trigger) ? true : trigger,
replace: _.isUndefined(replace) ? true : replace
});
}
};
在最近的一个项目中,我在实验Flux时采用了一种方法,即使路由层成为另一个存储。我制作了一个包含React View组件文件、路由器存储和路由器操作的文件夹。我提供的资料来源如下: 反应视图文件:
var React = require('react');
var storeMixin = require('project/shared/helpers/storeMixin');
var RouterStore = require('../RouterStore');
module.exports = React.createClass({
mixins: [storeMixin(RouterStore)],
getInitialState: function () {
return {RouterStore: RouterStore};
},
getComponentClass: function (route) {
switch (route) {
case 'help':
return require('project/app/components/Help');
default:
return require('project/FrontPage/FrontPage');
}
},
render: function () {
var props = {
route: this.state.RouterStore.get('route'),
routeParams: this.state.RouterStore.get('params')
};
var Component = this.getComponentClass(props.route);
return <Component {...props} />;
}
});
操作文件:
var constants = require('./constants');
var dispatch = require('project/shared/helpers/dispatch');
var _ = require('underscore');
module.exports = {
navigate: function(fragment, trigger, replace) {
dispatch(constants.ROUTE_NAVIGATE, {
fragment: fragment,
trigger: _.isUndefined(trigger) ? true : trigger,
replace: _.isUndefined(replace) ? true : replace
});
}
};