我应该在组件中使用redux(connect)中的状态还是从父组件传递道具?

问题描述 投票:2回答:1

显然我不再使用本地状态,因为我的状态现在包含在Redux容器中。

但是对于无状态组件,我只需使用props传递他们需要的数据。

我想验证这是O.K.?

下面是一个无状态组件的示例,该组件从其父级接收数据并将数据传递给它的子级。

父元素使用Redux。 (未显示)。

对于这个有什么好的参考吗?即文件?

import React from 'react';
import FrameFaveTagFave from './FrameFaveTagFave.jsx';

const FrameFaveTag = function(props) {
  const bookmarks = props.bookmarks.map((bookmark) =>
    <FrameFaveTagFave bookmark={bookmark} key={bookmark.id} />
  );
  return (
    <div className="bookmark_page" id="{props.tag}" >
      <div className="bookmark_tag_title">
        <p className="bookmark_tag_title_p">
          {props.tag}
        </p>
      </div>
      {bookmarks}
    </div>
  )
}

export default FrameFaveTag;
javascript reactjs redux
1个回答
1
投票

这取决于你所遵循的惯例。每当我制作应用程序时,我都希望将状态保存在redux中,这些状态与应用程序的多个部分相关。假设您在应用程序为用户帐户的信息,权限信息等安装时获取数据,我更喜欢那些放入我的redux状态,我可以在应用程序的任何位置访问它。但是假设一个只对组件有意义的状态,我想把它放在组件的状态中。一个示例可以是您打开/关闭模态或第三个窗格等的位置。您也可以将其置于redux状态,但将其放入React组件的状态是有意义的。如果你想让你的应用程序中的所有功能组件成为一个功能组件,你可能还想看看recompose及其实用程序方法。来自redux作者的This回答将为您提供更多见解,了解何时应该在应用中将redux存储在redux中。

编辑:

如果我们是否应该在组件中使用connect或从父母传递道具之间进行比较,那么我倾向于使用passing from parent比连接更好一点,因为尽管connect使组件只听取组件的相关状态更改然后重新渲染它还必须进行比较检查是否与该组件相关的状态发生了变化。

© www.soinside.com 2019 - 2024. All rights reserved.