Slide 1

Slide 1 text

Laravel+Vue.jsͰ 0͔ΒαʔϏε։ൃͯ͠Έͨ 2018/06/26 ٶ࡚×ԭೄ JSφΠτ

Slide 2

Slide 2 text

<جຊ৘ใ> - େ௩ਅݴʢ໊͋ͩɿ͠Μ͛Μʣ - ϑϦʔϥϯεWebΤϯδχΞ - ౦ژੜ·Εҭͪɺ2017೥ΑΓٶ࡚ʹҠॅ - झຯ͸ΩϟϯϓͱϑΣε <ܦྺ> - ৽ଔͰ෋࢜௨ʹೖࣾ͠3೥΄ͲγεςϜΤϯδχΞΛܦݧ - Ϋϥ΢υϑΝϯσΟϯάFAAVOͰWebΤϯδχΞͱͯ͠ࢀը͠ɺ PHPΛ৮Γ࢝ΊΔɻ - 3೥΄Ͳอकӡ༻Λܦݧ͠ɺ2018೥3݄͔ΒϑϦʔϥϯεͱͯ͠׆ ಈத <εΩϧ> - PHP, Laravel, Vue.js, AWS ࣗݾ঺հ

Slide 3

Slide 3 text

ʻର৅ऀʼ Laravel × Vue.js × SPA (SinglePageApplication) ʹڵຯ͕͋Δਓ Vue.jsΛ࢝ΊͯΈ͍ͨਓ ʻԿΛ࿩͢ʁʼ SPAͷجૅɺϝϦοτ γεςϜߏ੒ͷબఆཧ༝ Vue.jsͷجૅ Laravel + Vue.js + SPA ։ൃͯ͠Έͯͷॴײ ʻΰʔϧʼ Έͳ͞Μʹ Laravel × Vue.js × SPA Ͱ։ൃͯ͠Έ͍ͨͱࢥͬͯ΋Β͏ ࠓ೔࿩͢͜ͱ

Slide 4

Slide 4 text

1. ։ൃͨ͠γεςϜ 2. γεςϜߏ੒ͱͦͷબఆཧ༝ 3. Vue.js ͷ໾ׂ 4. ྑ͔ͬͨ఺ 5. ՝୊/ࠓޙʹ͍ͭͯ ໨࣍

Slide 5

Slide 5 text

ڭҭܥίϯςϯπʹಛԽͨ͠ϚʔέοτϓϨΠε ػೳҰཡ ɾϢʔβ؅ཧʢϩάΠϯɺϢʔβ৘ใมߋͳͲʣ ɾίϯςϯπ؅ཧ ɾܾࡁ ɾΧʔτ ɾϨϏϡʔ ɾ؅ཧը໘ʢίϯςϯπͷঝೝɺ͓஌Βͤʣ ※Ӷҙ։ൃதͷͨΊ͓ݟͤ͢Δ͜ͱ͕Ͱ͖·ͤΜ… ։ൃͨͯ͠͠ΔγεςϜ

Slide 6

Slide 6 text

Laravel × Vue.js × SPA γεςϜߏ੒ αʔό Vue.js Laravel ॳճϦΫΤετ )5.-$44+4 "1*ϦΫΤετ +40/ ॳճͷΈϨϯμϦϯάʹ͕͔͔࣌ؒΔ αʔό͸API͚ͩΛఏڙ͢Δ ಈతʹมߋ͢Δ෦෼ͷΈ௨৴͢ΔͷͰදࣔ଎౓͕ૣ͍

Slide 7

Slide 7 text

1. SPAΛ࡞ͬͯΈ͔ͨͬͨ →SPAͷϢʔβϏϦςΟ͸৺஍Α͍ 2. Laravel+Vue.jsͷਓؾ →Githubͷελʔ਺Ͱ ɹϥΠόϧʁΛ௒͑ͨ 3. Vue.jsඪ४ͷvue-router ʢϧʔςΟϯάʣΛ࢖͑͹ ؆୯ʹSPAʹରԠՄೳ બఆཧ༝ IUUQTUXJUUFSDPNLPUBNBUTTUBUVT

Slide 8

Slide 8 text

1. Viewͷඳը Vue.jsͷ໾ׂ ಺͕Viewͱͯ͠ϨϯμϦϯά͞ΕΔ

Slide 9

Slide 9 text

2. ม਺ͷόΠϯυ Vue.jsͷ໾ׂ contentΦϒδΣΫτͷnameϓϩύςΟΛόΠϯσΟϯά

Slide 10

Slide 10 text

3. ίϯϙʔωϯτ Vue.jsͷ໾ׂ ContentDetailίϯϙʔωϯτΛݺͼग़͢ Ҿ਺ͷΑ͏ʹcontentΦϒδΣΫτΛ౉͢͜ͱ΋Մೳ

Slide 11

Slide 11 text

4. σΟϨΫςΟϒ Vue.jsͷ໾ׂ v-if σΟϨΫςΟϒ όΠϯυͨ͠஋͕trueධՁͰ͋Ε͹DOMཁૉ͕ੜ੒͞Ε falseͰ͋Ε͹ഁغ͞ΕΔ

Slide 12

Slide 12 text

5. αʔόαΠυ΁ͷϦΫΤετ Vue.jsͷ໾ׂ axios Vue.jsͷެࣜυΩϡϝϯτͰਪ঑͞Ε͍ͯΔ HTTPΫϥΠΞϯτ API΁ϦΫΤετΛ౤͛ͯɺ݁ՌΛऔಘ͢Δ

Slide 13

Slide 13 text

ʢ͔͜͜Β͸ॴײͰ͢ʣ 1. σʔλऔಘ͔Βදࣔ·Ͱ͕෼͔Γ΍͍͢ 2. ίϯϙʔωϯτ෼ׂʹΑΓϝϯςφϯεੑ޲্ 3. Laravel×Vue.js×SPAͷςϯϓϨʔτʹΑΓ։ൃ؀ڥߏங ͕ര଎ʹͰ͖ͨ 4. ϑϩϯτͱόοΫΤϯυͰ΄΅׬શʹ෼ۀͰ͖ͨ ྑ͔ͬͨ఺

Slide 14

Slide 14 text

σʔλऔಘ͔Βදࣔ·Ͱ͕෼͔Γ΍͍͢ ᶃ ϓϩύςΟΛఆٛ ᶄ VueΠϯελϯε͕ੜ੒͞ΕͨλΠϛϯάͰϝιουݺͼग़͠ ᶅ APIݺͼग़͠ ᶆ ϓϩύςΟʹ஋Ληοτ ᶇ ϓϩύςΟʹ஋͕ηοτ͞ΕΔ௚લ·ͰϩʔσΟϯάදࣔ ᶈ ࢠίϯϙʔωϯτʹ஋Λ౉͢ ᶉ ஋ΛΛදࣔ ਌ίϯϙʔωϯτʢσʔλऔಘʣ ਌ίϯϙʔωϯτʢσʔλදࣔʣ ࢠίϯϙʔωϯτʢσʔλදࣔʣ

Slide 15

Slide 15 text

components ࠶ར༻Λલఏͱͨ͠ίϯϙʔωϯτ pages ϧʔςΟϯάͱରʹͳΔ਌ίϯϙʔωϯτ ↓ γϯϓϧͳσΟϨΫτϦߏ੒Ͱཧղ͠΍͍͢ ίϯϙʔωϯτ෼ׂʹΑΓ ɹɹɹɹɹɹɹϝϯςφϯεੑ޲্

Slide 16

Slide 16 text

https://github.com/cretueusebiu/laravel-vue-spa Laravel×Vue.js×SPAͷςϯϓϨʔτ ɹɹɹɹʹΑΓ։ൃ؀ڥߏங͕ര଎ʹͰ͖ͨ Githubελʔ਺ɿ800͘Β͍ VueRouter, Vuex ಋೖࡁΈ ΧελϜϨΠΞ΢τରԠ ձһొ࿥ɺϩάΠϯ/ϩάΞ΢τɺ ύεϫʔυ๨ΕͳͲ࣮૷ࡁΈ JWT(JSON Web Token) ʹΑΔAPI ೝূઃఆࡁΈ Bootstrap4 + Font Awesome΋ಋ ೖࡁΈ

Slide 17

Slide 17 text

ϑϩϯτͱόοΫΤϯυͰ ɹɹɹɹɹɹɹ΄΅׬શʹ෼ۀͰ͖ͨ A͞Μɿhtml, cssͷϚʔΫΞοϓ B͞ΜɿLaravelͰAPI࣮૷ C͞ΜɿVue.jsͰAPIͱϑϩϯτͷܨ͗ࠐΈ A͞ΜͱB͞Μ͸ฏߦͯ͠࡞ۀ

Slide 18

Slide 18 text

1. publicͳϖʔδʹ΋SPAԽ͍ͯ͠ΔͷͰSEOରࡦ΍OGPରԠ͕Ͱ͖͍ͯ ͳ͍ʢOGP͸݁ߏ·͍ͣ…ʣ →Nuxt.jsͰSSRʢαʔόαΠυϨϯμϦϯάʣ͢Δ 2. ϦϑΝΫλϦϯά →ίϯϙʔωϯτͷσΟϨΫτϦߏ੒΍ॏෳίʔυͷίϯϙʔωϯτԽΛ ਐΊΔ 3. ԿΑΓແࣄʹϦϦʔεͰ͖ΔΑ͏ؤுΔ →౰ॳ༧ఆ͸6݄த०ͩͬͨɻɻɻܾࡁ·ΘΓ͕ෆ҆Ͱ͋Δ ՝୊/ࠓޙऔΓ૊Έ

Slide 19

Slide 19 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ