Questions tagged «reactjs-flux»

Flux是Facebook用于通过React构建客户端Web应用程序的应用程序体系结构。它通过利用单向数据流来补充React的可组合视图组件。

8
为什么通过Facebook Flux使用Redux?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 去年关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我已经阅读了这个答案,减少了样板,看了几个GitHub示例,甚至尝试了一点redux(待办事项应用程序)。 据我了解,官方的redux doc动机与传统的MVC架构相比具有优势。但是它没有提供以下问题的答案: 为什么要通过Facebook Flux使用Redux? 这仅仅是编程风格的一个问题:功能性还是非功能性?还是问题出在redux方法之后的abilities / dev-tools中?也许缩放?还是测试? 如果我说redux对于来自函数式语言的人来说是一种变化,那我是对的吗? 为了回答这个问题,您可以比较实现Redux在通量和Redux上的动机点的复杂性。 以下是来自官方redux doc动机的动机点: 处理乐观更新(据我了解,这几乎不依赖于第5点。很难在Facebook流量中实现它吗?) 在服务器上渲染(facebook流量也可以做到这一点。与redux相比有什么好处吗?) 在执行路线转换之前获取数据(为什么不能在facebook流量中实现?有什么好处?) 热重载(React Hot Reload可能实现。为什么需要redux?) 撤消/重做功能 还有其他要点吗?像坚持状态...

7
使用Redux而不是Flux会有什么弊端[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 去年关闭。 改善这个问题 我最近才发现Redux。一切看起来不错。在Redux上使用Redux是否有任何弊端,陷阱或妥协?谢谢


11
在React应用程序中拥有服务
我来自一个有角的世界,在那里我可以将逻辑提取到服务/工厂,并在控制器中使用它们。 我试图了解如何在React应用程序中实现相同的目标。 假设我有一个可以验证用户密码输入(强度)的组件。它的逻辑非常复杂,因此我不想将其编写在自己的组件中。 我应该在哪里写这个逻辑?在商店中,如果我使用助焊剂?还是有更好的选择?

3
在Flux架构中,您如何管理商店生命周期?
我正在阅读有关Flux的信息,但示例Todo应用程序对于我来说太简单了,无法理解一些关键点。 想象一下像Facebook这样的具有用户个人资料页的单页应用程序。在每个用户个人资料页面上,我们要无限滚动地显示一些用户信息及其最新帖子。我们可以从一个用户个人资料导航到另一个。 在Flux体系结构中,这将与商店和调度员相对应吗? 我们会为PostStore每个用户使用一个,还是会有某种全球商店?调度程序呢,我们将为每个“用户页面”创建一个新的调度程序,还是使用单例?最后,体系结构的哪一部分负责管理“特定于页面的”商店的生命周期以响应路线更改? 此外,单个伪页面可能具有相同类型的多个数据列表。例如,个人资料页上,我想同时显示关注和跟随。UserStore在这种情况下,单例如何工作?将UserPageStore管理followedBy: UserStore和follows: UserStore?


6
通量存储或动作(或两者)是否应该涉及外部服务?
商店应该保持自己的状态并能够调用网络和数据存储服务……在这种情况下,这些动作只是愚蠢的消息传递者, -要么- ...商店应该是动作中不可变数据的愚蠢接收者(而动作是在外部源之间获取/发送数据的动作吗?在这种情况下,商店将充当视图模型,并且能够聚合/过滤它们的数据根据动作所馈送的不可变数据设置自己的状态之前。 在我看来,它应该是一个或另一个(而不是两者的结合)。如果是这样,为什么一个偏爱/推荐另一个偏爱?

6
服务器端渲染异步初始化的React.js组件的策略
React.js的最大优势之一应该是服务器端渲染。问题在于密钥功能React.renderComponentToString()是同步的,这使得在服务器上呈现组件层次结构时无法加载任何异步数据。 假设我有一个通用的注释组件,可以将其放置在页面上的任意位置。它只有一个属性,某种标识符(例如,放置评论的文章ID),其他所有内容都由组件本身处理(加载,添加,管理评论)。 我真的很喜欢 Flux架构,因为它使许多事情变得容易得多,并且它的存储非常适合在服务器和客户端之间共享状态。初始化包含评论的商店后,我可以对其进行序列化并将其从服务器发送到易于还原的客户端。 问题是填充我的商店的最佳方法是什么。在过去的几天里,我一直在搜寻很多东西,并且遇到过几种策略,考虑到React的这一功能正在“推广”多少,这些策略似乎都不是一件好事。 我认为,最简单的方法是在实际渲染开始之前填充所有商店。这意味着组件层次结构之外的某个地方(例如,钩到了我的路由器)。这种方法的问题在于,我几乎必须两次定义页面结构。考虑一个更复杂的页面,例如具有许多不同组件的博客页面(实际博客文章,评论,相关文章,最新文章,Twitter流...)。我将不得不使用React组件设计页面结构,然后我必须在其他地方定义填充此当前页面的每个所需商店的过程。这对我来说似乎不是一个很好的解决方案。不幸的是,大多数同构教程都是以此方式设计的(例如, flow-tutorial)。 反应-异步。这种方法是完美的。它使我可以简单地在每个组件的特殊功能中定义如何初始化状态(无论是同步还是异步),这些功能在将层次结构呈现给HTML时被调用。它的工作方式是直到状态完全初始化后才呈现组件。问题是它需要纤维据我了解,这是一个Node.js扩展,可更改标准JavaScript行为。尽管我非常喜欢结果,但在我看来,我们没有找到解决方案,而是更改了游戏规则。而且我认为我们不应被迫使用React.js的这一核心功能。我也不确定该解决方案的一般支持。是否可以在标准Node.js虚拟主机上使用Fiber? 我自己想了一下。我还没有真正考虑过实现细节,但是总体思路是,我将以类似于React-async的方式扩展组件,然后在根组件上重复调用React.renderComponentToString()。在每次通过期间,我将收集扩展的回调,然后在和处调用它们,以填充商店。我将重复此步骤,直到将填充当前组件层次结构所需的所有商店。有很多事情需要解决,我尤其不确定性能。 我错过了什么?还有其他方法/解决方案吗?现在,我正在考虑采用react-async / fibers方式,但是我不确定,正如第二点所述。 GitHub上的相关讨论。显然,没有官方的方法甚至解决方案。可能真正的问题是应如何使用React组件。像简单的视图层(几乎是我的建议之一)还是真正的独立组件?

4
如何使用react.js中的Enter键提交表单?
这是我的表单和onClick方法。我想在按下键盘的Enter按钮时执行此方法。怎么样 ? 注意:没有jquery被赞赏。 comment: function (e) { e.preventDefault(); this.props.comment({comment: this.refs.text.getDOMNode().value, userPostId:this.refs.userPostId.getDOMNode().value}) }, <form className="commentForm"> <textarea rows="2" cols="110" placeholder="****Comment Here****" ref="text" /><br /> <input type="text" placeholder="userPostId" ref="userPostId" /> <br /> <button type="button" className="btn btn-success" onClick={this.comment}>Comment</button> </form>

4
Webpack-dev-server提供目录列表而不是应用程序页面
我只能在下看到实际的应用/public。 的配置webpack.config.js如下: var path = require('path'); var webpack = require('webpack'); module.exports = { entry: [ 'webpack-dev-server/client?http://localhost:8080', 'webpack/hot/only-dev-server', './app/js/App.js' ], output: { path: path.join(__dirname, 'public'), filename: 'bundle.js', publicPath: 'http://localhost:8080' }, module: { loaders: [ { test: /\.js$/, loaders: ['react-hot', 'babel-loader'], exclude: /node_modules/ } ] }, plugins: [ new webpack.HotModuleReplacementPlugin(), new webpack.NoErrorsPlugin() …

4
组件应在什么嵌套级别从Flux商店读取实体?
我正在重写我的应用程序以使用Flux,但从商店检索数据时遇到问题。我有很多组件,它们嵌套很多。其中有些是大(Article),有些是小而简单(UserAvatar,UserLink)。 我一直在努力在组件层次结构中的什么地方应该从商店读取数据。 我尝试了两种极端的方法,但我都不喜欢: 所有实体组件都读取自己的数据 需要从商店中获取一些数据的每个组件仅接收实体ID,并自行检索实体。 例如,Article被传递articleId,UserAvatar并UserLink传递userId。 这种方法有几个明显的缺点(在代码示例下讨论)。 var Article = React.createClass({ mixins: [createStoreMixin(ArticleStore)], propTypes: { articleId: PropTypes.number.isRequired }, getStateFromStores() { return { article: ArticleStore.get(this.props.articleId); } }, render() { var article = this.state.article, userId = article.userId; return ( <div> <UserLink userId={userId}> <UserAvatar userId={userId} /> </UserLink> <h1>{article.title}</h1> <p>{article.text}</p> <p>Read more by <UserLink …

9
如何切换反应组件的布尔状态?
我想知道如何切换React组件的布尔状态。例如: 我在组件的构造函数中进行了布尔状态检查: constructor(props, context) { super(props, context); this.state = { check: false }; }; 我试图每次使用this.setState方法切换复选框时的状态: <label><input type=checkbox" value="check" onChange = {(e) => this.setState({check: !check.value})}/> Checkbox </label> 当然,我得到了Uncaught ReferenceError:未定义检查。那么我该如何实现呢? 提前谢谢了。

4
redux,react-redux,redux-thunk有什么区别?
我正在使用React + Flux。我们的团队计划从助焊剂转变为还原剂。Redux对来自助焊剂世界的我非常困惑。在磁通控制中,从组件->操作->存储和存储更新返回组件很简单。它很简单,也很清楚。 但是在redux中令人困惑。这里没有商店,是的,有些例子没有使用商店。我经历了一些教程,看来每个人都有自己的实现风格。有些正在使用容器,有些则没有。(我不知道这个Containers概念,也无法理解mapStateToProps,mapDispatchToProps的作用)。 有人可以清楚地说明redux中的控制流是如何发生的吗? redux中的组件/容器/动作/动作创建者/商店的作用是什么? redux / react-redux / redux-thunk /其他之间的区别?? 如果您可以发布任何简单而精确的redux教程的链接,这将非常有帮助。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.