React 数据驱动 JavaScript 框架 Relay

Relay 详细介绍

Relay 是构建数据驱动 React 应用的 JavaScript 框架。

主要特性:

声明式:不再使用一个命令式 API 与数据存储通讯。简单的使用 GraphQL 声明你的数据需求,让 Relay 理解如何,什么时候获取你的数据。

托管:查询在视图后面,Relay 聚合查询成有效的网络请求,只获取你需要的数据。

转变:Relay 允许你使用 GraphQL mutations 在客户端和服务器端转变数据,提供自动数据一致,优化更新和错误处理。

简单列表:

class Tea extends React.Component {
  render() {
    var {name, steepingTime} = this.props.tea;
    return (
      <li key={name}>
        {name} (<em>{steepingTime} min</em>)
      </li>
    );
  }
}
Tea = Relay.createContainer(Tea, {
  fragments: {
    tea: () => Relay.QL`
      fragment on Tea {
        name,
        steepingTime,
      }
    `,
  },
});
class TeaStore extends React.Component {
  render() {
    return <ul>
      {this.props.store.teas.map(
        tea => <Tea tea={tea} />
      )}
    </ul>;
  }
}
TeaStore = Relay.createContainer(TeaStore, {
  fragments: {
    store: () => Relay.QL`
      fragment on Store {
        teas { ${Tea.getFragment('tea')} },
      }
    `,
  },
});
class TeaHomeRoute extends Relay.Route {
  static routeName = 'Home';
  static queries = {
    store: (Component) => Relay.QL`
      query TeaStoreQuery {
        store { ${Component.getFragment('store')} },
      }
    `,
  };
}
ReactDOM.render(
  <Relay.RootContainer
    Component={TeaStore}
    route={new TeaHomeRoute()}
  />,
  mountNode
);

文章转载自 开源中国社区[https://www.oschina.net]

时间: 2024-09-19 20:31:51

React 数据驱动 JavaScript 框架 Relay的相关文章

Vue vs React: Javascript框架之战

正如我们之前提到的,WordPress 的核心团队正争论着为应该将哪款(前端框架)加入现在的架构之中.目前看来,暂时脱颖而出的是React与Vue.js,社区中的很多成员正权衡着这两款框架的利弊. 那到底哪款框架会胜出,哪款框架又会沦为昔日的prototype.js.呢?让我们一起看看吧. 我已经写出了两个几乎一样的Web应用,一个是基于Vue,另一个则基于React,可以方便你在看这篇文章的时候查找相关代码. React sample app(https://github.com/ptaske

新手教程:您必须了解的15套JavaScript框架与库

[51CTO.com快译]JavaScript拥有着庞大的技术社区,而如此可观的技术支持基础亦帮助其进一步在受众群体中吸引人气.值得强调的是,目前面向开发者的大部分框架及库属于开源项目,这意味着相关开发人员能够轻松运用这些资源以高效完成日常工作.因此,无论您身为JavaScript新手抑或经验丰富的前辈高人,充分利用这些方案的既有优势都将显著提升您的开发效率与效果. 在今天的文章中,我们将介绍15款最为重要的JavaScript框架与库--您千万不要错过. 1. Angular.js Angul

九个用于移动APP开发的顶级JavaScript框架

从技术上讲,iOS.Android和Windows Phone上的移动app使用了不同的编程语言进行编码.iOS app使用Objective-C,Android app使用Java,而Windows Phone app使用.NET.但是,掌握一定量的JavaScript.CSS和HTML知识,你就可以构建超棒的移动app.因此,在本博客中,我们将讨论用于开发移动app的顶级JavaScript框架. 对于Web开发而言,JavaScript是一个有前途的编程语言,并且在不久的将来它将依然在这个

JavaScript框架、类库、工具汇总

相比于JavaScript开发人员的数量,目前JavaScript框架.类库和工具的数量似乎更多一些.截至2017年5月,GitHub上的快速搜索显示,有超过110万个JavaScript项目.npmjs.org有50万个可用的软件包,每月下载量近100亿次. 本文将会讨论目前最为流行的客户端JavaScript框架.类库和工具以及它们之间的基本差异.也许本文无法告诉你哪个是最好的,但是最适合自己项目的,就是最好的. 类库 类库是一个有组织的功能集合.典型的类库包括字符串处理.日期.HTML D

6 个值得好好学习的 JavaScript 框架

常言道,条条大路通罗马,可是那一条适合我呢? 由于用于构建前端页面等现代技术的出现,JavaScript 在 Web 开发社区早已是如雷贯耳.通过在网页上编写几个函数并提供执行逻辑,可以很好的支持 HTML (主要是用于页面的 表现 或者 布局).如果没有 JavaScript,那页面将没有任何 交互特性 可言. 现在的框架和库已经从蛮荒时代崛起了,很多老旧的技术纷纷开始将功能分离成模块.现在不再需要在整个核心语言中支持所有特性了,开发者允许所有用户创建库和框架来增强核心语言的功能.这样,语言的

2016年非常热门的七大顶级JavaScript框架

当涉及到Web开发时,JavaScript框架往往是一些开发人员和企业最受欢迎的平台.可能,你有机会尝试过一两个顶级的JavaScript框架,但你仍然有点不确定哪个才是最佳的最值得掌握的,或者哪个值得你建议你的开发人员选择用于下一个web开发项目. JavaScript正在以惊人的速度前进,并且添加新的技能到你的存储库变得有不断的压力.为了做到这一点,知道和了解更多的顶级JavaScript框架在现在看来是必要的.在ValueCoders进行了彻底的研究后,我们入围了其中七个顶级框架,它们是:

推荐用于移动APP开发的顶级JavaScript框架

从技术上讲,iOS.Android和Windows Phone上的移动app使用了不同的编程语言进行编码.iOS app使用Objective-C,Android app使用Java,而Windows Phone app使用.NET.但是,掌握一定量的JavaScript.CSS和HTML知识,你就可以构建超棒的移动app.因此,在本博客中,我们将讨论用于开发移动app的顶级JavaScript框架. 对于Web开发而言,JavaScript是一个有前途的编程语言,并且在不久的将来它将依然在这个

Win10 UWP再支持Facebook React Native开源框架

微软正在为React Native开源框架增加Windows 10 UWP的支持. React Native最初是由Facebook开发的用于生成用户界面的JavaScript代码库,并于2015年开放了的源代码.该框架旨在让开发人员能够开发跨iOS和安卓平台的移动原生应用程序.但是,React Native并不是一次编写就能在多个平台运行的框架,相反,它侧重于每个平台独特的功能特点. 微软称,将React Native应用程序延伸到了Windows 10设备,包括个人电脑.移动设备.Xbox

T3 —— 松耦合、少模型的 JavaScript 框架

T3js(t3.js)与MVC框架不同,T3是建立在可伸缩JavaScript应用体系结构的概念之上来创建松耦合.少模型的系统,以此来创建大型JavaScript应用. 使用T3由自己决定所创建的组件类型,这样一来所有的事情可以分为三类: 服务(Services):为应用提供额外工具的库,例如cookie utility.URL encoder/decoder.popup menus 模块(Modules):模块可以使用服务来完成任务,但模块不能直接引用其他模块 行为(Behaviors):混合