Share
Embed
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
2024/8/28、TORETA TECH UPDATE #1 での資料です。
OKUNOKENTARO
August 28, 2024
Transcript
83 slides
-
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w Ԟݡଠ!PLVOPLFOUBSP w ΫϨεΣΞגࣜձࣾදऔకࣾ w גࣜձࣾτ Ϩλٕज़ސ
w 8FCΞϓϦέʔγϣϯ ɾ ΞʔΩςΫ τ w 5ZQF4DSJQUྺ ୭ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε wτ Ϩλ09 w ͓ళͷͩ͜ΘΓ͑Δө͑ΔϞόΠϧϝχϡʔ w จ͔Β͓ձܭ·Ͱɺ εϚϗͰ݁
w ͷ։ൃ։͔࢝࣌Βݱࡏ·Ͱͷɺ ༷ʑͳγεςϜͷมߋɺ ࣄۀͷมԽʹ͏ େنͳϦΞʔΩςΫνϟͷʑͷखॱΛਤղ ࠓ͢Δ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w w ϕʔλ൛ͷ։ൃ w w
҆ఆ൛Ϧ Ϧʔε w ෳࣜهํࣜͷରԠ w w "QQ3PVUFSҠߦ w 104ΦʔϓϯઓུͷϦΞʔΩςΫνϟ શମͷྲྀΕ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w ϥΠ ϒϥ ϦͷϦ ϑΝϨϯεతͳઆ໌ɺ ϝ Ϧ
ο τ ɾ σϝ Ϧ ο τ͠·ͤΜ w ࣍ͷ͜ͱͯ͢͠·ͤΜ w /FYUKT"QQ3PVUFS1BHFT3PVUFSΑ ΓԿ͕༏Ε͍ͯΔ͔ w 3FBDU4FSWFS$PNQPOFOUTʹ͢ΔͱߴԽͰ͖Δ͔ w 5BJMXJOE$44ͱ$44JO+4ͷൺֱ w આ໌ͷॱংΛ༏ઌ͓ͯ͠Γɺ ݫີͳ࣌ܥྻͱҰ෦ҟͳΓ ·͢ w ࣮ࡍɺ ࢿྉʹొ͠ͳ͍"1*γεςϜ͕͋Γ ·͕͢େ෯ʹ؆ུԽ͍ͯ͠·͢ w ਤதͷϖʔδɺ "1*ਖ਼֬Ͱ͋Γ ·ͤΜ ࠓ͠ͳ͍ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε ίϯϙʔωϯ τଆ࣮ணख ॳ಄ʙय़ จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε ίϯϙʔωϯ
τଆ࣮ணख ॳ಄ʙय़ getServerSideProps() /pages/index.tsx w 3FBDU /FYUKTʹͯϖʔδΛ࡞ w ελΠ Ϧ ϯάʹFNPUJPO .6*Λ༻ w ϖʔδͱରͰgetServerSideProps() Λ࣮ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε αʔόʔଆ࣮ணख य़ จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε αʔόʔଆ࣮ணख य़
/pages/api handleMethod() w /pagesʹ/apiσΟ ϨΫ τ ϦΛ࡞ w Τϯ υϙΠϯ τΛྔ࢈͢Δ w Τϥʔϋϯ υ Ϧ ϯάΛ౷Ұతʹߦ͏ͨΊʹ ͯ͢ͷϋϯ υϥhandleMethod()ؔͰϥ οϓ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ձܭॲཧϖʔδͱձܭॲཧόοΫΤϯ υΛ࣮ य़ʙՆ
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ձܭॲཧϖʔδͱձܭॲཧόοΫΤϯ υΛ࣮ य़ʙՆ จܥϖʔδ ձܭॲཧܥϖʔδ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ձܭॲཧϖʔδͱձܭॲཧόοΫΤϯ υΛ࣮ य़ʙՆ
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ձܭॲཧϖʔδͱձܭॲཧόοΫΤϯ υΛ࣮ य़ʙՆ w getServerSideProps()ʹϦμΠ ϨΫ τΛ͏ όϦσʔγϣϯΛ࣮ w ձܭॲཧதͷෆਖ਼ͳը໘ભҠʹԠͯ͡ɺ దͳ ϑϩʔʹͨ͢Ίͷॲཧ w ͜Ε͕ͷͪʹܹ͠ ͘ෛ࠴Խ͢Δʜ getServerSideProps() -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ϕʔλ൛ͷ ळ Ϛελ
จॲཧ ձܭॲཧ ˞ࠨӈͷઐ༻൛ʹ্Βͳ͍ͨΊҎޙӅ͢ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ରϝχϡʔ"1*ରࡦ ౙ º
w ͯ͢ͷϋϯ υϥͰར༻͢ΔhandleMethod()ͷલஈʹͯ isContentfulϑϥάʹΑΔذΛ࣮ w ະདྷӬ߷ΔଆΛfalseͱ ͯ͠ɺ ݹ͘ ͳΔଆΛtrueʹ͢Δ w ֎෦%#ʹอଘ͢Δͱμϯ࣌ʹٻ·Βͳ͍ͷͰ ରళฮڥมʹ+40/"SSBZΛ֨ೲ if (isContentful) { .. . } -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ϝχϡʔ"1*༻ϋϯ υϥΛ࣮ ॳ಄
º จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ϝχϡʔ"1*༻ϋϯ υϥΛ࣮ ॳ಄ handleGet() -> handleGetContentful() ʹվ໊ handleGet() ৽ن࡞ w ͻͱͭͻͱͭͷϋϯ υϥʹ$POUFOUGVM൛ذͱϝχϡʔ"1*༻ͷ ذΛઃ͚ͳ͍ w ։ൃऀʹΑͬͯذՕॴ͕ඍົʹζϨΔͳͲͯ͠ɺ ࠶ར༻ੑ͕ଛͳΘΕΔͨΊ w ॲཧ಄ͰisContentfulϑϥάͰذ͢ΔͱఆΊΔ͜ͱͰ $POUFOUGVM༻ͱϝχϡʔ"1*༻ͷܥ౷Λ࣮͠ɺ શʹ -
จ"1* ϝχϡʔ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ϝχϡʔ"1*ͱͷܨ͗ࠐΈ य़
จॲཧ Ϛελ Ϛελ w ܥ౷Λ͚ͯϨεϙϯε ɾ εΩʔϚಉҰͷͷΛڞ༗ w /FYUKTόοΫΤϯ υ͔Βϑϩϯ τΤϯ υͷ ΠϯλϑΣʔε͕ޓͳͨΊɺ ϑϩϯ τΤϯ υଆແվम w +40/4DIFNBΛڞ༗͠ɺ Ϩεϙϯεॲཧͷࣗಈςε τΛ࣮ࢪ w ແఀࢭͰσʔλϕʔεΓସ͑Λୡ ޓͷεΩʔϚͰ ΫϥΠΞϯ τʹฦ٫ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε τ Ϩλ09ύϒϦ
οΫ൛Ϧ Ϧʔε ݄ จॲཧ $POUFOUGVMഇࢭ Ϛελ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε $POUFOUGVMҨߏͷআڈલฤ Ն จ"1*
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε $POUFOUGVMҨߏͷআڈલฤ Ն w $POUFOUGVMΛݺͼग़͢ίʔ υ͕ίʔ υϕʔεʹ ͬͨ··୭͔ΒΞΫηε͞Εͳ͘ ͳͬͨ͜ͱΛ֬ೝ w isContentfulΛϋʔ υίʔ υͰfalseͷఆʹ ஔ͖͑ w ϋϯ υϥΛআڈ͢Δ isContentful Λৗʹ false ʹ handleContentful() ͱɺ͔ͦ͜Βґଘ͢ΔࢠؔΛͯ͢আڈ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε $POUFOUGVMҨߏͷআڈޙฤ Ն -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε $POUFOUGVMҨߏͷআڈޙฤ Ն จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε $POUFOUGVMҨߏͷআڈޙฤ Ն w ذࣗମΛ࣮͔Βআڈ͢Δ w $POUFOUGVMؔ࿈ͷίʔ υΛͯ͢আڈ͢Δ w আڈ࿙Εݕʹ,OJQϥΠ ϒϥ ϦΛ͏ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε ෳࣜهରԠͷγεςϜվम ळʙౙ ෳࣜهܗࣜͷରԠ ळʙౙ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε ෳࣜهରԠͷγεςϜվम ळʙౙ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε ෳࣜهରԠͷγεςϜվम ळʙౙ จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷγεςϜվम ळʙౙ w จϚΠΫϩαʔϏεͷצఆܥॲཧʹ ˙ैདྷํࣜʹՃ͑ͯ˙ෳࣜهํ͕ࣜ ࣮͞Εͨ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε ෳࣜهରԠͷͨΊͷ"1*࣮ ळʙౙ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε ෳࣜهରԠͷͨΊͷ"1*࣮ ळʙౙ จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷͨΊͷ"1*࣮ ळʙౙ w จ"1*ʹ৽ܥ౷ͷΤϯ υϙΠϯ τ͕ ࣮͞Εɺ ෳࣜهܥΛѻ͑ΔΑ ͏ʹͳͬͨ w ύϒϦ οΫ൛·ͩैདྷํࣜʹ͔͠ରԠ Ͱ͖͍ͯͳ͍ จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷͨΊͷ"1*࣮ ळʙౙ -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠʹҠߦ͢ΔͨΊͷذॲཧΛՃ ౙ จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε -
จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠʹҠߦ͢ΔͨΊͷذॲཧΛՃ ౙ จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠʹҠߦ͢ΔͨΊͷذॲཧΛՃ ౙ จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε w ޙʹશళฮ͕ෳࣜهରԠʹҠߦ͢Δͱ͍͏ ࣄۀܭըʹج͖ͮɺ ैདྷํࣜΛ͙͢আڈͰ͖ΔΑ ͏ʹ ifϒϩοΫʹҠ͢ w ͜ͷஅ͕ɺ ͷͪʹཪʹͰΔ if (isLegacyInvoice) { .. . } -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུͷ࢝ಈ ॳ಄ "QQ3PVUFSҠߦ ॳ಄ʙय़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུͷ࢝ಈ ॳ಄ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུͷ࢝ಈ ॳ಄ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུͷ࢝ಈ ॳ಄ w ࣗࣾϞόΠϧϝχϡʔ ࣗࣾ104ͱ͍͏ ΞʔΩςΫνϟʹ ࣄۀܭը্ͷ࠷େͷసظ͕๚ΕΔ w ଞࣾͷ104γεςϜͱͷ࿈ܞػೳͷ࣮͕ܾ·Δ w εέδϡʔϧλΠ τ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུͷ࢝ಈ ॳ಄ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུͷ࢝ಈ ॳ಄ w 104࿈ܞεέδϡʔϧతʹɺ ҰΓ࢝ΊͨΒळظࠒ·Ͱ શͯͷ։ൃϦ ιʔε͕ͦͪΒΛ͘ؾ͕͋ͬͨ w /&$ϞόΠϧ104ணखલʹɺ ؾ߹͍ͷ"QQ3PVUFSҠߦ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽͷணख ॳ಄ʙय़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽͷணख ॳ಄ʙय़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽͷணख ॳ಄ʙय़ w ·ͣશͯͷϖʔδͷϧʔ τίϯϙʔωϯ τΛࢠίϯϙʔωϯ τԽ͠ ͦΕΒΛϥ οϓ͢Δ৽ϧʔ τίϯϙʔωϯ τΛ࡞͢Δ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽͷணख ॳ಄ʙय़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽͷணख ॳ಄ʙय़ w ͰձܭϖʔδͷϦμΠ ϨΫ τॲཧΛgetServerSideProps()ʹ࣮ͨ͠ w དྷ٬ͷձܭঢ়گΛαʔόʔʹ͍߹Θͤͯɺ ͦͷঢ়گʹԠͯ͡ϦμΠ ϨΫ τ͢Δ w ͜ͷॲཧΛଞͷॴʹҠઃ͠ͳ͍ͱ"QQ3PVUFSԽ͕ୡͰ͖ͳ͍ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT ͷड͚ࡼ"1*Λ࣮ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT ͷड͚ࡼ"1*Λ࣮ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT ͷड͚ࡼ"1*Λ࣮ य़ w redirect-destination "1*Λ࣮ͨ͠ w ܾࡁঢ়گʹج͍ͮͨϦμΠ ϨΫ τܥͷॲཧΛҰखʹҾ͖ड͚Δ w ͜ͷ"1*Λઃ͚Δ͜ͱͰɺ όοΫΤϯ υͰͳ͘ ϑϩϯ τΤϯ υ͔Β ϦμΠ ϨΫ τઌܭࢉͷ݁ՌΛಘΔ͜ͱ͕Ͱ͖Δ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT Ҡߦલฤ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT Ҡߦલฤ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT Ҡߦલฤ य़ w getServerSideProps()Ͱ࣮ࢪ͍ͯ͠ΔURLSearchParamsͷ όϦσʔγϣϯॲཧΛɺ ը໘͚ͩΫϥΠΞϯ τ ɾ αΠ υʹҠઃ w Ͱ৽ϧʔ τίϯϙʔωϯ τΛઃ͚͍ͯΔͷͰɺ ͦͷ༨ʹҠઃ͢Δ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT Ҡߦޙฤ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT Ҡߦޙฤ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT Ҡߦޙฤ य़ w getServerSideProps()ͰݺͿ͚ͩʹมߋͨ͠ redirect-destination"1*ΛΫϥΠΞϯ τ ɾ αΠ υ͔Β ݺͿΑ ͏ʹมߋ w ·ͣը໘͚ͩ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT શഇ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT શഇ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT શഇ य़ w จܥϖʔδͷURLSearchParamsͷόϦσʔγϣϯɺ ձܭॲཧܥϖʔδͷϦμΠ ϨΫ τॲཧΛͯ͢ΫϥΠΞϯ ταΠ υʹҠઃ w getServerSideProps()ΛҰΘͳ͍/FYUKT1BHFT3PVUFS ͷΞʔΩςΫνϟΛୡ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1*
จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε HFU4FSWFS4JEF1SPQT શഇ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽΛୡ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽΛୡ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽΛୡ य़ w ͯ͢ͷ/pages/index.tsxΛ/app/page.tsxʹҠಈ ɾ ϦωʔϜ w pages/app.tsxͳͲͷॲཧΛ/app/layout.tsxʹదٓҠઃ /app /app/page.tsx -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽΛୡ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽΛୡ य़ w ͔ͭͯϖʔδͷϧʔ τͩͬͨࢠίϯϙʔωϯ τʹ ҰͰ"use client"Λ༩͢Δ "use client" -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFSԽΛୡ य़ w ͜ͷࠒͷ13͕13Λ͓͑ͯΓ ఏग़ଆϨϏϡʔଆෛՙ͕࠷ߴை -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ର104Φʔϓϯઓུͷج൫Λ࣮ य़ 104࿈ܞϦΞʔΩςΫνϟ य़ʙՆ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ର104Φʔϓϯઓུͷج൫Λ࣮ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ର104Φʔϓϯઓུͷج൫Λ࣮ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ର104Φʔϓϯઓུͷج൫Λ࣮ य़ w 104࿈ܞisContentfulϑϥάͱҟͳΓɺ ߃ٱతʹΔ֓೦ͷ ͨΊɺ ΈΛඋ͢Δඞཁ͕͋Δ w handleFacade()ؔΛ࣮ w 'BDBEFύλʔϯͱ4USBUFHZύλʔϯΛΈ߹Θͤͯɺ ෳͷ104͚ͷ ॲཧذ͕ҰͭͷؔͷதͰࠞࡏ͠ͳ͍Α ͏ʹશʹͤ͞Δ handleFacade() -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε /&$ϞόΠϧ104༻ͷϋϯ υϥΛ࣮ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε /&$ϞόΠϧ104༻ͷϋϯ υϥΛ࣮ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε /&$ϞόΠϧ104༻ͷϋϯ υϥΛ࣮ य़ w طଘͷࣾ104 09104 ͱશ͘ҟͳΔܥ౷Ͱ /&$ϞόΠϧ104༻ϋϯ υϥΛ࣮ w "EBQUFSͰߏΛ09104ޓʹม͠ ΫϥΠΞϯ τ ɾ αΠ υʹฦ٫͢ΔσʔλͷޓੑΛҡ࣋ w $POUFOUGVM࣌Λܦݧ͍ͯ͠ΔͷͰϋϚΓ Ͳ͜ΖΛ ཧղ͍ͯͨ͠ Ϛελ Ϛελ ޓͷεΩʔϚͰ ΫϥΠΞϯ τʹฦ٫ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫
/&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷԆ໋ରࡦ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫
/&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷԆ໋ରࡦ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷԆ໋ରࡦ य़ w ʮશళฮ͕ෳࣜهରԠʹҠߦ͢Δʯ ͱ͍͏ࣄۀܭը͕ ԆظʹͳͬͨͨΊɺ ͙͢ফͤΔΑ ͏ʹifذͰ࡞ͬͨ Օॴ͕ු͖࢝ΊΔ w 104ผذͷΈͱձܭॲཧํࣜʹΑΔذ͕ νάϋάʹͳ͍ͬͯΔͷͰ౷Ұ͍ͨ͠ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫
/&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷԆ໋ରࡦ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠͷԆ໋ରࡦ य़ w 104ผذͷΈhandleFacade()Ͱ ձܭॲཧํࣜ֬ೝ͢ΔΑ ͏վम w ෳͨ͠ϋϯ υϥͷยํͷisLegacyInvoice ϑϥάΛfalseʹϋʔ υίʔ υ w ͏ยํͷisLegacyInvoiceϑϥάΛ trueʹϋʔ υίʔ υ const isLegacyInvoice = false; const isLegacyInvoice = true; -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠॲཧͷ4USBUFHZԽ य़ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠॲཧͷ4USBUFHZԽ य़ จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε ෳࣜهରԠॲཧͷ4USBUFHZԽ य़ w boolean͕ϋʔ υίʔ υ͞ΕͨఆΛࢀর͢ΔifϒϩοΫ Ͱ͔͠ͳ͍ͷͰɺ ֘͠ͳ͍ॲཧΛͯ͢আڈ w ͜ΕͰैདྷํࣜͱෳࣜهํࣜͷ࣮͕ࠩ104ผͷ࣮ࠩͱ ಉʹѻ͑ΔΑ ͏ʹͳΓɺ ίʔ υͷݟ௨͕͠େ෯ʹվળ͞Εͨ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε /&$ϞόΠϧ104ରԠ൛ΛϦ Ϧʔε ݄ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε /&$ϞόΠϧ104ରԠ൛ΛϦ Ϧʔε ݄ Ϛελ จॲཧ ʢ09ʣ ձܭॲཧ ʢچࣜʣ ձܭॲཧ ʢෳࣜهʣ จॲཧ ʢ/&$ϞόΠϧ104ʣ Ϛελ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུج൫ͷணख Ն -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104
ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུج൫ͷணख Ն จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུج൫ͷணख Ն w ͞Βʹଞࣾ࿈ܞΛ֦͛ΔͨΊʹ104Φʔϓϯઓུج൫ͷ։ൃʹணख w /&$ϞόΠϧ104ͱϞόΠϧϝχϡʔΞϓϦͷόοΫΤϯ υ͕ ௨৴͕ͨ͠ɺ ࠓޙ104Φʔϓϯઓུج൫Λܦ༝ͤ͞Δ -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫
/&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུج൫ʹ͚ͨϋϯ υϥͷ࣮ Ն -
จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫
/&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུج൫ʹ͚ͨϋϯ υϥͷ࣮ Ն จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε 104Φʔϓϯઓུج൫ʹ͚ͨϋϯ υϥͷ࣮ Ն ޓͷεΩʔϚͰ ΫϥΠΞϯ τʹฦ٫ Ϛελ Ϛελ Ϛελ w 4USBUFHZύλʔϯͷج൫Λ࣮ࡁΈͳͷͰɺ ͔͜͜Β͞Βʹผܥ౷ͷ 104ΛՃ͢Δͷ༰қͱͳͬͨ w 104Φʔϓϯઓུج൫༻ͷܥ౷Λ৽ͨʹઃ͚Δ w /&$ϞόΠϧ104ͱ௨৴͢Δ͕ɺ ͍ͣΕج൫ଆʹҠઃ͍ͨ͠ -
จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1*
104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFS 34$લఏͷ৽نϖʔδͷ࡞ Ն -
จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1*
104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFS 34$લఏͷ৽نϖʔδͷ࡞ Ն จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε จ"1* 104Φʔϓϯઓུج൫ /&$ϞόΠϧ104 ϝχϡʔ"1* จϚΠΫϩαʔϏε "QQ3PVUFS 34$લఏͷ৽نϖʔδͷ࡞ Ն w ՆҎ߱ͷ৽نϖʔδ"QQ3PVUFSલఏͷઃܭ w getServerSideProps()༻ͷޓؔΛ࠷ॳ͔Β ࣮ͤͣɺ 5BJMXJOE$44લఏͰελΠ Ϧ ϯά w 4FSWFS"DUJPOTΛલఏͱͨ͠'PSNॲཧ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w /PEFKTYˠY w 5ZQF4DSJQUˠ w /FYUKTˠ w
3FBDUˠ ϥΠ ϒϥ Ϧͷมભ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w खͣͭਐΊΔ͜ͱΛৗʹҙࣝͨ͠ w ϋϊΠͷౝΛղ͘ Α ͏ʹࠜؾڧ͘खͣͭਐΊΔ wʮ"Λ͠ͳ͕Βಉ࣌ʹ#ͬͪΌ͓͏ʯ
ࣄނͷݩ wʮ"͕ྃ͢Δ·Ͱ#Βͳ͍ʯ Λ؏͖νʔϜͰೝࣝΛἧ͑ͨ w ͋ΒΏΔ ϦΞʔΩςΫνϟʹ͍ͭͯ໖ີʹఔΛ࿅ͬͯνʔϜͰਤղ͠ ݶΒΕͨͰߦ͖ͨΓͬͨΓͳϦ ϑΝΫλ Ϧ ϯάΛ࣮ࢪ͠ͳ͍Α ͏ܭըͨ͠ ԿʹؾΛ͚͔ͭͨ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w ΞʔΩςΫνϟ͕ෳࡶʹͳΓɺ ࿈ܞ͢ΔγεςϜ͕૿͑Δ΄Ͳ ίʔ υ ϨϏϡʔͰͷώϡʔϚϯΤϥʔ͕૿͑࢝ΊΔ w
ͱʹ͔͘ ࣗಈԽ͢Δ w 5ZQF4DSJQU 7JUFTU &4-JOU 1SFUUJFS ,OJQ w ґଘؔͷଥੑΛௐࠪ͢ΔϧʔϧΛ&4-JOUno-restricted-pathsͰ ఆٛͨ͠ w 5ZQF4DSJQU ϑΝΠϧҎ্ͷݕࠪʹ͔͔ΔͨΊݕࠪϥΠ ϒϥ ϦΛࣗ࡞ͨ͠ w ಉ༰ͷݕ͕ࠪඵͰऴΘΔΑ ͏ʹͳͬͨͷͰɺ ޙ044Խ͢Δ༧ఆ ࣗಈԽࢧԉ -
จ"1* $POUFOUGVMʢ$.4ʣ จϚΠΫϩαʔϏε w :"(/*ݪଇʹै͏ w ࠓͷઃܭʹ͕ͳ͍͔৺͗͢͠ͳ͍ w ࣗͨͪͷࠓͷࣝͱࠓͷεΩϧΛ৴͡Δ w
ະདྷ͕ͲͬͪʹసΜͰԿ͔͠Βى͜Δ w ͯ͢ͷॲཧʹςε τΛॻ͘ w ͱʹ͔͘ ςε τΛॻ͍ͯଉΛ͢ΔΑ ͏ʹϦ ϑΝΫλ Ϧ ϯάΛ࣮ࢪ͢Δ w ذॲཧ͍͔ͳΔঢ়گͰѱɺ ͕࠷খʹͳΔΛܧଓ͢Δ w ͋ΒΏΔͷɺ ࠶ར༻ੑΑ Γ ࣺͯ͢͞Λ࠷༏ઌʹ͢Δ $PODMVTJPO