Upgrade to Pro — share decks privately, control downloads, hide ads and more …

reading-mtc2018-web.pdf

Daiki Ihara
November 19, 2018

 reading-mtc2018-web.pdf

LT at Roppongi.js #7

Daiki Ihara

November 19, 2018
Tweet

More Decks by Daiki Ihara

Other Decks in Programming

Transcript

  1. • Name: Daiki Ihara • ID: @sasurau4 • Job: react-native

    / Server Side Kotlin / GraphQL • Hobby: React, Typescript • Mind: Front-end engineer 自己紹介
  2. レポジトリを眺める https://github.com/mercari/mtc2018-web • monorepo • server / web ディレクトリ •

    rootのschema.graphqlがGraphQLのスキーマ定義 • rootにmockServerもいる
  3. • components -> LazyImage.tsx • 名の通り、画像の遅延読み込み用コンポーネント • Intersection Observer APIを使用

    ◦ 要素がビューポートと交差するか監視する方法を提供する API ◦ Safariはsupportされていないので、webpackでバンドルする際にpolyfillしている 1. LazyImage Component
  4. 2. timetable データの持ち方 • store -> timetable.tsの中でオブジェクトとして定義 • sessionのidをフロントで持つことでtimetableの表示をコントロール •

    ウェブアプリケーションにおいてはサーバーしか知らないidを前もって、フロント が知っていることで煩雑な条件分岐を回避
  5. まとめ • mtc2018-webレポジトリは知見がいっぱい ◦ i18n ◦ SSR ◦ componentの分け方 ◦

    GraphQL Fragment ◦ Apollo Client ◦ etc. • Typescript + GraphQLはいいぞ