Yumemi.vue #3 LT登壇資料です
StorybookͰϞδϡʔϧϞʔυͷVuex storeΛར༻͢ΔRoadagain
View Slide
ࣗݾհͷ༻ҙ͕ؒʹ߹Θͳ͔ͬͨΒTwitterΛ։͘εϥΠυhttps://twitter.com/ringoh72
ࣗݾհRoadagain (Twitter: @ringoh72)גࣜձࣾϞόΠϧϑΝΫτϦʔࡢ10ͿΓʹࣃҩऀߦ͖·ͨ͠
ຊ
͋ΔNuxt.jsͷϓϩδΣΫτͰVuexΛ͍࢝Ίͨ
ϞδϡʔϧϞʔυ• Nuxt.js͕ࣗಈͰVuex storeΛ࡞ΔϞʔυ• state, getters, actions, mutationsΛݸผͰexport͢Δ• σΟϨΫτϦߏ͕moduleʹͳΔhttps://ja.nuxtjs.org/guide/vuex-store/#ϞδϡʔϧϞʔυ
ΫϥγοΫϞʔυ• Nuxt.jsͰैདྷͷVuex storeΛѻ͏Ϟʔυ• store/index.jsͰVuex storeΛexport͢Δ• Nuxt 3Ͱഇࢭ༧ఆhttps://ja.nuxtjs.org/guide/vuex-store/#ΫϥγοΫϞʔυ
͔ͤͬͩ͘͠ϞδϡʔϧϞʔυͰͬͯΈ͍ͨ
ͦͯ͠Ϳ͔ͭΔStorybookͷน
StorybookͷVuex• αϙʔτ͞Ε͍ͯΔ͕ѻ͍͕গ͠໘• storyͰVuex storeͷΠϯελϯεΛ͢ඞཁ͕͋Δhttps://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file
StorybookͷVuex• αϙʔτ͞Ε͍ͯΔ͕ѻ͍͕গ͠໘• storyͰVuex storeͷΠϯελϯεΛ͢ඞཁ͕͋Δ• ϞδϡʔϧϞʔυ…ແཧͰʁhttps://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file
๚Εͨޫ໌https://storybook.js.org/docs/guides/guide-vue/#step-3-create-the-config-file
require.context• webpack͕ఏڙ͢Δಛघͳrequire• σΟϨΫτϦͷϑΝΠϧ໊ΛҰׅऔಘ͠ɺͦͷ··requireͰ͖Δ༏Εͷhttps://webpack.js.org/guides/dependency-management/#requirecontext
ߟ͑ͨ͜ͱrequire.contextͰϑΝΠϧ໊ΛऔಘͰ͖Δ“/“ ͷ༗ແͰ్த͔Ͳ͏͔அͰ͖Δ→͍͍ײ͡ʹ࠶ؼॻ͚͍͚ΔͷͰʁ
࣮ࡍʹͬͯΈͨ
storybook-with-moduled-vuex
storeͷߏஙؔ
storeͷߏங
ಈ࡞આ໌
ಈ࡞આ໌1. require.contextͰϑΝΠϧ໊ΛҰׅऔಘ2. ϑΝΠϧ໊͝ͱʹrequireͯ͠ϞδϡʔϧΛऔಘ3. ϑΝΠϧ໊Λݟ֤ͯϞδϡʔϧΛஔ
“counter.js”ͳͷͰͦͷ··moduleʹͰ͖Δcounter: {namespaced: true,state,getters,actions,mutations}
ಈ࡞આ໌: ͷ߹Ϟδϡʔϧల։ͯ͠ऴΘΓ{counter: {namespaced: true,state,getters,actions,mutations}}
“form/text.js” form͔Βߋʹજͬͨmodule͕͋Δform: {namespaced: true,module: {text: {namespaced: true,state,getters,actions,mutations}}}
ಈ࡞આ໌: ࢠ࣋ͪͷ߹1. ࣗͷkeyͱࢠͷkeyΛׂ“form/text.js” → “form” “text.js”
ಈ࡞આ໌: ࢠ࣋ͪͷ߹2. Vuex moduleͷܗΛ࡞Δ{parentKey: { namespaced: true,module: {}}}
ಈ࡞આ໌: ࢠ࣋ͪͷ߹3. ܗΛ৽ͨͳrootͱͯ͠࠶ؼ{parentKey: { namespaced: true,module: {} // ͕͜͜৽͍͠root}}
࣮Nuxt.js෦ͰࣅͨΑ͏ͳ࣮Λ͍ͯͨ͠https://github.com/nuxt/nuxt.js/blob/838bacf/packages/vue-app/template/store.js
༧Ί༻ҙͨ͠ͷ͕ͪ͜ΒʹͳΓ·͢
·ͱΊ• ϞδϡʔϧϞʔυ࠶ݱՄೳ• ͱ͍͏͔ॻ͍ͯͨΒຊՈίʔυͬΆ͔ͬͨ• ͬͱεϚʔτͳղܾ๏ͳ͍͔ͳ͋…
Α͍͜Ϛω͠ͳ͍ͰͶʂ