Slide 1

Slide 1 text

StorybookͰ ϞδϡʔϧϞʔυͷVuex storeΛ ར༻͢Δ Roadagain

Slide 2

Slide 2 text

ࣗݾ঺հͷ༻ҙ͕ ؒʹ߹Θͳ͔ͬͨΒ TwitterΛ։͘εϥΠυ https://twitter.com/ringoh72

Slide 3

Slide 3 text

ࣗݾ঺հ Roadagain (Twitter: @ringoh72) גࣜձࣾϞόΠϧϑΝΫτϦʔ ࡢ೔10೥ͿΓʹࣃҩऀߦ͖·ͨ͠

Slide 4

Slide 4 text

ຊ୊

Slide 5

Slide 5 text

͋ΔNuxt.jsͷϓϩδΣΫτͰ VuexΛ࢖͍࢝Ίͨ

Slide 6

Slide 6 text

ϞδϡʔϧϞʔυ • Nuxt.js͕ࣗಈͰVuex storeΛ࡞ΔϞʔυ • state, getters, actions, mutationsΛ ݸผͰexport͢Δ • σΟϨΫτϦߏ଄͕moduleʹͳΔ https://ja.nuxtjs.org/guide/vuex-store/#ϞδϡʔϧϞʔυ

Slide 7

Slide 7 text

ΫϥγοΫϞʔυ • Nuxt.jsͰैདྷͷVuex storeΛѻ͏Ϟʔυ • store/index.jsͰVuex storeΛexport͢Δ • Nuxt 3Ͱഇࢭ༧ఆ https://ja.nuxtjs.org/guide/vuex-store/#ΫϥγοΫϞʔυ

Slide 8

Slide 8 text

͔ͤͬͩ͘͠ ϞδϡʔϧϞʔυͰ΍ͬͯΈ͍ͨ

Slide 9

Slide 9 text

ͦͯ͠Ϳ͔ͭΔ Storybookͷน

Slide 10

Slide 10 text

StorybookͷVuex • αϙʔτ͸͞Ε͍ͯΔ͕ѻ͍͕গ͠໘౗ • story಺ͰVuex storeͷΠϯελϯεΛ౉͢ ඞཁ͕͋Δ https://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file

Slide 11

Slide 11 text

StorybookͷVuex • αϙʔτ͸͞Ε͍ͯΔ͕ѻ͍͕গ͠໘౗ • story಺ͰVuex storeͷΠϯελϯεΛ౉͢ ඞཁ͕͋Δ • ϞδϡʔϧϞʔυ…ແཧͰ͸ʁ https://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file

Slide 12

Slide 12 text

๚Εͨޫ໌ https://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file

Slide 13

Slide 13 text

๚Εͨޫ໌ https://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file

Slide 14

Slide 14 text

require.context • webpack͕ఏڙ͢Δಛघͳrequire • σΟϨΫτϦ಺ͷϑΝΠϧ໊ΛҰׅऔಘ͠ɺ ͦͷ··require΋Ͱ͖Δ༏Ε΋ͷ https://webpack.js.org/guides/dependency-management/#requirecontext

Slide 15

Slide 15 text

ߟ͑ͨ͜ͱ require.contextͰϑΝΠϧ໊ΛऔಘͰ͖Δ “/“ ͷ༗ແͰ్த͔Ͳ͏͔൑அͰ͖Δ →͍͍ײ͡ʹ࠶ؼॻ͚͹͍͚ΔͷͰ͸ʁ

Slide 16

Slide 16 text

࣮ࡍʹ΍ͬͯΈͨ

Slide 17

Slide 17 text

storybook-with-moduled-vuex

Slide 18

Slide 18 text

storeͷߏஙؔ਺

Slide 19

Slide 19 text

storeͷߏங

Slide 20

Slide 20 text

ಈ࡞આ໌

Slide 21

Slide 21 text

ಈ࡞આ໌ 1. require.contextͰϑΝΠϧ໊ΛҰׅऔಘ 2. ϑΝΠϧ໊͝ͱʹrequireͯ͠ ຤୺ϞδϡʔϧΛऔಘ 3. ϑΝΠϧ໊Λݟ֤ͯϞδϡʔϧΛ഑ஔ

Slide 22

Slide 22 text

“counter.js”͸຤୺ͳͷͰ ͦͷ··moduleʹͰ͖Δ counter: { namespaced: true, state, getters, actions, mutations }

Slide 23

Slide 23 text

ಈ࡞આ໌: ຤୅ͷ৔߹ Ϟδϡʔϧల։ͯ͠ऴΘΓ { counter: { namespaced: true, state, getters, actions, mutations } }

Slide 24

Slide 24 text

“form/text.js” ͸form͔Β ߋʹજͬͨmodule͕͋Δ form: { namespaced: true, module: { text: { namespaced: true, state, getters, actions, mutations } } }

Slide 25

Slide 25 text

ಈ࡞આ໌: ࢠ࣋ͪͷ৔߹ 1. ࣗ෼ͷkeyͱࢠͷkeyΛ෼ׂ “form/text.js” → “form” “text.js”

Slide 26

Slide 26 text

ಈ࡞આ໌: ࢠ࣋ͪͷ৔߹ 2. Vuex moduleͷ਽ܗΛ࡞Δ { parentKey: {
 namespaced: true, module: {} } }

Slide 27

Slide 27 text

ಈ࡞આ໌: ࢠ࣋ͪͷ৔߹ 3. ਽ܗΛ৽ͨͳrootͱͯ͠࠶ؼ { parentKey: {
 namespaced: true, module: {} // ͕͜͜৽͍͠root } }

Slide 28

Slide 28 text

࣮͸Nuxt.js಺෦Ͱ΋ ࣅͨΑ͏ͳ࣮૷Λ͍ͯͨ͠ https://github.com/nuxt/nuxt.js/blob/838bacf/packages/vue-app/template/store.js

Slide 29

Slide 29 text

༧Ί༻ҙͨ͠΋ͷ͕ ͪ͜ΒʹͳΓ·͢

Slide 30

Slide 30 text

·ͱΊ • ϞδϡʔϧϞʔυ͸࠶ݱՄೳ • ͱ͍͏͔ॻ͍ͯͨΒຊՈίʔυͬΆ͔ͬͨ • ΋ͬͱεϚʔτͳղܾ๏ͳ͍͔ͳ͋…

Slide 31

Slide 31 text

Α͍͜͸Ϛω͠ͳ͍ͰͶʂ