棋牌娱乐
https://twitter.com/seldo/status/950794461235130368前段时间刷 src="https://pic1.zhimg.com/v2-25cdd0bc801bbbe2cf8c8ffff13fd538_b.jpg">
开始:Facebook src="https://pic3.zhimg.com/v2-f08c6745f6fb3ee9772eaa83d18a266e_b.jpg">
这是一个很常见的评论列表,拿到需求后我们就开始写我们的 src="https://pic1.zhimg.com/v2-cf8daf998679e3701208cb9b7402c678_b.jpg">
不止于此,当我们做更新操作的时候也会便捷许多。比如修改一条评论。我们定义一个 src="https://pic3.zhimg.com/v2-1224b23f62cd8a9afabc7b80bbd8fae2_b.jpg">
“通过 GraphQL“ 意味着我们可以使用书写 GraphQL 的查询语句来获取无论是 rest api 或是 client state 中的数据,这样 Apollo Client 可以替我们管理应用中所有的数据,包括缓存和数据拼接。
const MIXED_QUERY = gql` query UserInfo() { // graphql endpoint currentUser { id name } // client state browserInfo @client { platform } // rest api messages @rest(route: /user/messages) @type(type: [Message]) { title } } `; 在这样一个 Query 查询中,我们使用 GraphQL 的 directive 拼接了来自于 GraphQL,rest,client state 中的数据,将它们抽象在一起维护。与之类似的,我们还可以封装相应的 mutation 实现。
尾巴
以上大概就是我这段时间使用 Apollo 和 GraphQL 的一些浅浅的实践。虽然接触的不深,但我可以感受到 Thinking in GraphQL 为前端带来的更优雅的解决方式,和 Apollo Client 这样一个完整的前端数据层解决方案的高效。我相信在 2018 年,它们会迎来更大的增长,甚至有代替 redux 成为通用数据管理方案的可能。
Apollo 相关的社区也比较活跃,在 dev-blog.apollodata.com 上也经常发表一些很有参考价值的文章,有兴趣可以随便看看~电子游艺,
原文标题:还在用Redux要不要试试GraphQL和Apollo
|