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

ReactとTypescript製Webアプリ作成で得た知見を共有したい

Nokogiri
October 25, 2018

 ReactとTypescript製Webアプリ作成で得た知見を共有したい

作ったアプリケーションの紹介
データ構造とAPI設計
モジュールのディレクトリ構成
ネストの深い State の更新
CSSはなるべく書きたくない
Typescript導入
パフォーマンスチューニング
その他よくある選択肢はどうしたか?
(おまけ)VSCodeとChromeによるデバッグ

Nokogiri

October 25, 2018
Tweet

More Decks by Nokogiri

Other Decks in Technology

Transcript

  1. Java / JavaScript / AWS / Vim / Ϛωδϝϯτ ͸͡Ί·ͯ͠!

    Taiki Nishi @nkgrnkgr Nokogiri Blog Home WebΞϓϦέʔγϣϯΤϯδχΞ ๏ਓ޲͚άϧʔϓ΢ΣΞαʔϏεͷ։ൃ Nokogiri(@nkgrnkgr) Speaker Deck
  2. ϞδϡʔϧͷσΟϨΫτϦߏ੒ • components … React ίϯϙʔωϯτ • logic … ۀ຿ϩδοΫ

    • api…αʔόʔ௨৴༻ ྫ) fetchOauthUrl, fetchRecordsͳͲ • domain…σʔλΫϥε(PropsͷIF) RecordsForMonth, PathͳͲ ɹɹɹClassͰ͸ͳ͘ओʹTypescriptͷInterface͕ೖ͍ͬͯ·͢ɻ • service…State಺ͷRecordͷ௥Ճɾߋ৽ɾ࡟আؔ਺Λ΋ͭΫϥε • util…ڞ௨ܥ ೔෇ͷॲཧͱ͔ • ίϯϙʔωϯτͱϏδωεϩδοΫ͸෼཭͍ͨ͠ • ϏδωεϩδοΫ෦෼͸SpringBoot Λࢀߟʹ͍ͯ͠Δ
  3. ωετͷਂ͍ State ͷߋ৽ • State ͷ͏ͪߋ৽͍ͨ͠ͷ͸ ݄ʼ೔ʼϨίʔυʼҠಈ৘ใ(from,to)ʼӺ໊ • ReactͷsetState͸State͕࣋ͭୈҰ֊૚ͷΦϒδΣΫτͷߋ৽͔͠Ͱ͖ͳ͍ •

    ”n”೔ͷ”m”൪໨ͷϨίʔυͷ “to” ͷ ”Ӻ໊” Λมߋ͢Δ৔߹ʹɺ݄ຖͷStateͷ ߋ৽͕ඞཁ Stateͷ݄৘ใΛίϐʔͯ͠Ұ෦Λߋ৽͠ ݄৘ใຖ্ॻ͖͢Δͱ͍͏Ξϓϩʔν͕ඞཁ
  4. CSS͸ͳΔ΂͘ॻ͖ͨ͘ͳ͍ • ࣾ಺޲͚ͳͷͰσβΠϯʹڽΔඞཁ͸ͳ͍ • 0͔Βࣗ෼Ͱॻ͘ͷ͸͕͢͞ʹͭΒ͍ • બ୒͠ͱͯ͠͸ҎԼ̎ͭΛݕ౼ 1. MaterialUI ͳͲͷ

    ReactComponentϥΠϒϥϦ 2. BootStrap ͳͲͷ CSSϑϨʔϜϫʔΫ ReactComponent … ݸਓతʹ͸CSSϑϨʔϜϫʔΫΑΓ͸ֶश ίετ͕ߴ͍ɻܕఆ͕ٛͳ͍ϥΠϒϥϦ͸࢖͑ͳ͍ CSSϑϨʔϜϫʔΫ … αΠυόʔͷ։ดͱ͔JS͕ඞཁͳΠϯλ ϥΫγϣϯ͸ͳ͍ͷͰࣗ࡞͢Δඞཁ͋Γ ࠓճ͸CSSϑϨʔϜϫʔΫͰʂ
  5. CSS͸ͳΔ΂͘ॻ͖ͨ͘ͳ͍ https://bulma.io/ • Flexbox ϕʔεͷCSSϑϨʔϜϫʔΫ • JSͳ͠Ͱಈ͖ɺ࢖͍ํ͕؆୯Ͱֶशίετ͕௿͍ • ͦΕͳΓͷݟͨ໨Λ࠷୹Ͱ࡞Δͱ͍͏໨తʹ߹க •

    ΞΠίϯ͸FontAwesomeʢbulmaͰ΋ਪ঑ʣ ՄೳͳݶΓBulma ͷඪ४ΫϥεΛ࢖͍ɺ marginͱ͔paddingͱ͔Ξχϝʔγϣϯ͚ͩࣗ࡞͢ΔΑ͏ʹͨ͠