Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应数据流_Reactjs - Fatal编程技术网

Reactjs 反应数据流

Reactjs 反应数据流,reactjs,Reactjs,我正在尝试创建一个博客应用程序,我对React的数据流模式有点困惑 我是否应该尝试在获取帖子后使用Redux之类的工具来存储所有帖子?我是否使用本地存储 然后,我如何告诉组件呈现文章的“扩展”版本?重复使用“post”组件更好,还是我应该创建两个单独的组件,一个用于标题,另一个用于全文 我知道这是一个两个问题,但它们有点联系在一起。提前感谢如果您想为React的下一个版本做好准备并拥有更短的代码,您应该尝试使用钩子并避免使用类 您可以根据需要组织代码,但更有趣的是,组件具有可伸缩性,并以不同的

我正在尝试创建一个博客应用程序,我对React的数据流模式有点困惑

我是否应该尝试在获取帖子后使用Redux之类的工具来存储所有帖子?我是否使用本地存储

然后,我如何告诉组件呈现文章的“扩展”版本?重复使用“post”组件更好,还是我应该创建两个单独的组件,一个用于标题,另一个用于全文


我知道这是一个两个问题,但它们有点联系在一起。提前感谢

如果您想为React的下一个版本做好准备并拥有更短的代码,您应该尝试使用钩子并避免使用类


您可以根据需要组织代码,但更有趣的是,组件具有可伸缩性,并以不同的属性重用它们

以下是我自学6个月后对这些主题的了解

在我看来,React的内置功能足以处理中小型应用程序的
状态
(尤其是当您作为单个开发人员单独工作时)

如果您立即转向Redux,您将必须学习在单个不可变存储中处理状态的全新模式,以及如何将组件连接到它

由于最有可能异步获取数据,因此需要一个助手库来异步处理Redux:
Redux-thunk
Redux-saga

因此,从一开始,您就必须添加:

  • 重演
  • 反应还原
  • 雷多克斯·图恩或雷多克斯传奇
有很多文档需要消化。这是完全可行的,但我非常同意这句话:

不要解决你没有的问题

学习这些工具会很困难,因为你从未面对过它们所解决的问题。当你开始学习时,你还没有遇到的问题会做出反应

阅读(来自Redux creator):


因此,我向你推荐:

学习基本反应(通过课堂):

然后学习React hook(您基本上可以忘记类组件):

仅在开始时使用React构建项目。看看情况如何。然后,您可以阅读更多关于Redux及其功能的信息,如果您真的需要它或不需要它,您将能够做出更好的选择


根据您对我们介绍的项目:

  • 在树中较高的组件中为所有帖子保留一个
    状态
    。可能在
    组件本身内部
  • 构建函数以获取和更新post数据,并使用响应更新状态
  • 根据需要渲染多少组件。例如,在
    BlogPostComponent
    中显示文章的完整信息,或在
    BlogPostThumbnailCard
    中显示文章的简化版本,仅显示缩略图和标题

使用Redux存储博客,而不是本地存储。如果您使用单个Api端点来获取数据。然后使用一个分派函数获取整个博客文章,在你的
onclick
函数中只显示剩余的文章谢谢,我只是不想在这么小的应用程序中使用Redux,但我可以学习它。
本地存储
不是用来存储博客文章的。你甚至不需要redux probablyThanks!我使用钩子和功能组件,而不是基于类的组件。我现在呈现帖子的方式是映射一个数组并呈现每篇帖子的标题,我很难理解如何只呈现列表中的一篇帖子,而不是所有帖子。非常感谢您的回复,非常体贴,非常感谢。我很好奇把我所有的帖子都存储在根目录下是否是个坏主意,但我不认为这是个坏主意。是否可以将提取的数据分离到自己的组件中,然后将其导入到或任何其他组件中,并将状态保存在自己的组件中?是的。例如,我的应用程序中有一个产品页面,需要获取一个产品的数据并显示在屏幕上。我通常做的是将页面分成两个部分
ProductContainer
(它将保存产品的状态以及获取和更新它的所有函数)和
ProductPage
(它将处理从
ProductContainer
收到的道具的所有UI呈现)。非常感谢您的精彩评论,我非常感谢!你不需要将所有状态都保存在应用程序中。只是组件树中不同级别的许多子组件中需要的组件。例如:身份验证状态是应用程序内部的最佳候选状态。但您也可以在更小的组件组中拥有状态。如果他们是唯一需要它的人。就像我在上面关于产品页面的评论中所描述的一样。另外,如果已经创建了其他组件,并且它们需要访问某些当前不可用的本地状态,那么是时候提升状态了: