还在用Redux要不要试试GraphQL和Apollo
还在用 Redux,要不要试试 GraphQL 和 Apollo?
◀◀◀点击图片进入游戏————◀◀◀◀———点击图片进入游戏———打麻将必胜绝技,打麻将必胜技巧,麻将绝技

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?
Comments
Post a Comment