兼容模式

迁移 Relay Classic 应用程序到 Relay Modern 不需要从头开始重写。 相反,将一个组件一次转换为 Relay Modern API,同时继续使用可用的应用程序。 所有组件都被转换后,可以使用越来越小的Relay Modern运行时。

在这种迁移过程中,使用 Relay 兼容 工具和API来处理 Relay Classic 和 Relay Modern.

API 和 Runtime #

Relay 可以被认为是共同的两个部分:用于构建数据驱动组件的API和从GraphQL获取和存储数据以填充应用程序的运行时。Relay Modern带来了新的API和新的运行时。

为了逐步转换现有的代码库,我们将需要使用Relay Modern API,同时继续使用Relay Classic运行时,直到所有组件都被转换为止。

Relay 兼容是其中的一部分, 'react-relay' 可以让您完全实现这一点,为继电器现代提供相同的API,同时允许与两个运行时。

入门 #

需要 Relay 兼容 API 'react-relay/compat' 并使用它与 Relay Modern. 使用 Relay Modern 兼容的组件可以由其他 Relay Modern 和 Relay Classic 组件参考。

const {createFragmentContainer, graphql} = require('react-relay/compat');

class TodoItem extends React.Component {
  render() {
    const item = this.props.item;
    // ...
  }
}

module.exports = createFragmentContainer(TodoItem, graphql`
  fragment TodoItem_item on Todo {
    text
    isComplete
  }
`);