2018/11/30 DIST.24 「Re: Adobe MAX Japan 2018」
View Slide
ଜ࿕ϑϩϯτΤϯυΤϯδχΞ͖ͳ"EPCFٶా༏رσβΠφʔ͖ͳ"EPCF
શʹҰக1IPUPTIPQ4LFUDI ฐࣾϩΰ
͛͢ʔී௨ͷΛ͠·͢ɻ
͓͓·͔ͳશମ૾
IUUQTNBYKBQBOBEPCFDPN
ཁ݅w ηογϣϯΛҰཡ͢Δw ొஃऀΛҰཡ͢Δw ηογϣϯɾొஃऀ͝ͱʹ ݸผͷϖʔδΛઃ͚Δw ใཧͷ؆ུԽw ී௨ͷϨϯλϧαʔόʔʹϗεςΟϯά
5IFී௨
ηογϣϯใw࣌ؒͱॴwδϟϯϧͱ༻ΞϓϦwλΠτϧwొஃऀʢৄࡉϖʔδϦϯΫʣw֓ཁɾରऀɾϨϕϧwਃ͠ࠐΈϖʔδͷϦϯΫʢϘπʣηογϣϯɿ݅τοϓϖʔδͷҰཡʹܝࡌ
ొஃऀใwϓϩϑΟʔϧࣸਅw໊લͱݞॻ͖wհจw୲ηογϣϯʢৄࡉϖʔδϦϯΫʣొஃऀɿ໊τοϓϖʔδͷҰཡʹܝࡌ
؆қαΠτϚοϓ
ಉ͡ใΛ܁Γฦ͠༻͍Δ
ใཧͷ؆ུԽͱσʔλιʔεͷ౷߹
ใཧͷ؆ུԽͱσʔλιʔεͷ౷߹w ใΛ+40/Խ͢Δ͜ͱͰ࠶ར༻͍ͨ͠w εϓϨουγʔτͳΒʜw ୭Ͱɾ͍ͭͰɾͲ͜Ͱ ใΛ؆୯ʹฤूͰ͖Δw "QQT4DSJQUΛ༻͍ͯσʔλΛ+40/ԽͰ͖Δ
ओͨΔγʔτͭTFTTJPOTશηογϣϯͷใTQFBLFSTશొஃऀͷใTMPUT։࠵ͷϚελʔ BQQT༻ΞϓϦέʔγϣϯͷϚελʔ
{"id": 41,"name": "Adobe Fonts"}"QQT4DSJQUͰ+40/ʹՃ{"id": 2298,"title": "WebϑΥϯτΛ120%ʙ","slot": 4,"place": "Magenta (Annex)","type": "Session","category": "web","summary": "ଟ࠼ͳॻମΛWeb্Ͱʙ","levels": [ false, true, false ],"price": 0,"isFullBooked": false,"speakers": [ 31 ],"targets": "WebσβΠφʔɺUI/UXσβΠφʔ","apps": [ 11, 41 ]}TFTTJPOT<>{"id": 31,"name": "দా थ ࢯ","kana": "·ͭͩ","image": "ʙ.jpg","company": "גࣜձࣾ·΅Ζ͠","class": "CCOɾσβΠφʔ","summary": "ήʔϜۀքʹͯʙ"}TQFBLFST<>{"id": 4,"day": 1,"name": "Breakout sessions + Workshop","from": "16:25","to": "17:15"}TMPUT<>BQQT<>
σʔλ༻ҙͰ͖ͨ ͋ͱͲ͏ͬͯྲྀ͠ࠐΉ͔
ํ๏৭ʑ1VH<%= EJS %>ςϯϓϨʔτΤϯδϯ ελςΟοΫαΠτδΣωϨʔλʔ/VYU41"ϑϨʔϜϫʔΫʁ
ελςΟοΫαΠτδΣωϨʔλʔ1VH<%= EJS %>ςϯϓϨʔτΤϯδϯ)5.-ઐͷํʑελςΟοΫαΠτδΣωϨʔλʔ/VYU41"ϑϨʔϜϫʔΫʁ
ελςΟοΫαΠτδΣωϨʔλʔ͖ͳਓ͖ͳʙͭ1VH<%= EJS %>ςϯϓϨʔτΤϯδϯ ελςΟοΫαΠτδΣωϨʔλʔ/VYU41"ϑϨʔϜϫʔΫʁ
/VYU͑ɺ41"ϑϨʔϜϫʔΫʁ1VH<%= EJS %>ςϯϓϨʔτΤϯδϯ ελςΟοΫαΠτδΣωϨʔλʔ
վΊ·ͯ͠/VYUͱɾ7VFKTΛ֦ுͨ͠ϑϨʔϜϫʔΫɾXFCQBDL#BCFMɾ41"࡞ͬͨΓɺ443ͤͨ͞Γɾ࣮੩తαΠτ࡞ΕΔIUUQTOVYUKTPSH
ςϯϓϨʔτ୭Ͱॻ͚Δ༗ྉ {{ price | commaSeparatedNumbers }}ԁ
ίϯϙʔωϯτͷ࠶ར༻͕Մೳv-for="session in slot.sessions":key="session.id"v-bind="session"/>tag="a":href="LINK_TO_LOG_IN"target="_blank"pilloutlinewhite>ࢀՃऀϩάΠϯtag="a":href="LINK_REGIST_WITH_ADOBE_ID"target="_blank"pillwhite>ࢹௌొ
ڥߏஙʹ·ͳ͍ɾXFCQBDLͰ݁(VMQෆཁɾ+4&4Ͱॻ͚ΔɾελΠϧMFTT4BTT4UZMVTͰॻ͚ΔɾϛχϑΝΠɾίʔυׂͬͪΓɾը૾Λ#BTFͰΤϯίʔυͯ͘͠ΕΔɾϧʔςΟϯάϑΝΠϧΛஔ͚ͩ͘
੩తαΠτੜίϚϯυnuxt generate
ϧʔτ͝ͱʹ)5.-Λग़ྗ\^+40/ϧʔςΟϯά■ /pages├┬ /index│││├┬ /sessions││└─ _id.vue│││└┬ /speakers│ └─ _id.vue│└ index.vue)5.-ग़ྗ■ /dist├┬ /sessions│├┬ /2272││└─ index.html│├┬ /2273││└─ index.html│└┬ /2274│ └─ index.html├┬ /speakers│├┬ /0││└─ index.html│├┬ /1││└─ index.html│└┬ /2│ └─ index.html└ index.htmlಈతϧʔτͷҾ͖ͯ// nuxt.config.jsmodule.exports = {generate: {routes() {return fetchMasterData().then(({ sessions, speakers }) => {const map = (dir, id) => `${dir}/${id}`return sessions.map(({ id }) => map('/sessions', id)).concat(speakers.map(({ id }) => map('/speakers', id)))})}}}
αʔόʔΛબͳ͍ɾશϖʔδͷ )5.-ϑΝΠϧ͕࣮ࡏ͢Δɾ41"443ʹඞཁͳ όοΫΤϯυ࣮͕ෆཁɾͲΜͳΣϒαʔόʔʹஔ͚Δ
·ͱΊɾใεϓϨουγʔτͰҰݩཧɾεϓϨουγʔτͷσʔλ "QQT4DSJQUͰ+40/Խɾίʔυ&4ͱ4$44Ͱॻ͘ɾͰ։ൃڥߏஙαϘΔɾશϖʔδΛ੩తʹஔ͢Δ
ී௨ͷ͜ͱΛී௨ʹ͢ΔͨΊͷ/VYUɾ+40/͔ΒϖʔδΛੜͰ͖ΔɾςϯϓϨʔτ୭Ͱॻ͚Δɾίϯϙʔωϯτͷ࠶ར༻͕ՄೳɾͨΓલͷ։ൃڥ͕ఏڙ͞ΕΔɾnuxt generate ίϚϯυͰ ੩తʹϑΝΠϧ͕ग़ྗ͞ΕΔ
/VYUී௨
ٻਓͷ͓ΒͤɾΤϯδχΞɾσΟϨΫλʔɾϚʔέλʔී௨ΛΞοϓσʔτͰ͖ΔํɺҰॹʹಇ͖·ͤΜ͔ʁIUUQTXXXXBOUFEMZDPNDPNQBOJFTNBCPSPTIJ
+4ษڧձɺͬͯ·͢ ʮͪΌΜͱॻ͘+4ʯIUUQTNBCPSPTIJDPOOQBTTDPNFWFOUʮ܅ΑɺଵଦͨΕʯʢԾʣʢԾʣ
͋Γ͕ͱ͏͍͟͝·ͨ͠ ྑ͍͓Λ