1

我正在阅读没有亵渎的 Redux,作者说如下:

声明性数据加载的趋势有利于这种模型,主要是因为它更易于使用。较新的 React 框架(例如 Falcor、GraphQL 和 Resolver)也可以自动批处理和重复数据删除请求。也可以使用简单的 Redux 操作结合自动操作来实现。

作者有点漫不经心地使用“声明性数据加载”,所以我认为它一定是一个广为人知且非常明显的术语。但是我用谷歌搜索并没有找到太多。不幸的是,作者认为这是明显的先验知识。请帮忙!

有人可以提供一个快速解释和示例,将“声明性数据加载”和你的平均 http/ajax 数据加载从一个简单的 MEAN 堆栈待办事项列表中并列?

4

1 回答 1

1

声明式数据加载和 http/ajax 数据加载的根本区别在于声明式和命令式编程之间的差异。使用声明性方法,您只需提及需要的内容,仅此而已。另一方面,使用命令式方法,您还需要说明步骤,即如何获得所需的内容。

下面我们来看一下Relay 的声明式数据加载示例。它告诉每个派系,它需要这些数据:id、factionId、名称、船只以及AddShipMutation一个派系所需的数据。如何获取数据是抽象的。

fragments: {
  factions: () => Relay.QL`
    fragment on Faction @relay(plural: true) {
      id,
      factionId,
      name,
      ships(first: 10) {
        edges {
          node {
            id
            ${StarWarsShip.getFragment('ship')}
          }
        }
      }
      ${AddShipMutation.getFragment('faction')},
    }
  `,
},

对于使用 HTTP 或 AJAX 加载数据,我们必须指定如何获取数据。

  1. 发出请求
  2. 接收响应
  3. 从响应中提取数据
  4. 存储数据

希望这可以帮助!

于 2016-07-31T02:53:38.730 回答