[๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปTA9 ์ธํ„ด 48์ผ์ฐจ]Vuex-actions

Goofiยท2023๋…„ 9์›” 4์ผ
0

Vuex์˜ actions ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•

actions ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ Vuex์—์„œ actions๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š” dispatch ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • dispatch๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‘๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜•ํƒœ

this.$store.dispatch("fetchData", parameter)

์˜ˆ์ œ)

store.js

actions : {
	//์•ก์…˜(actions) ์ •์˜
  fetchData(context, parameter){
  	console.log(parameter)
  }
}

call.js(actions๋ฅผ ํ˜ธ์ถœํ•˜๋Š” jsํŒŒ์ผ)

<template>
  <div>
  	<button @click="fetchDataWithParameter">์•ก์…˜ํ˜ธ์ถœ</button>
  </div>
</template>

<script>
  export default(){
  	methods : {
    	fetchDataWithParameter(){
          const parameter = "์ „๋‹ฌํ•  ํŒŒ๋ผ๋ฏธํ„ฐ";
          this.$store.dispatch('fetchData',parameter);
          //this.$store.dispatch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ action๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
        }
    }
  }
</script>

์œ„์˜ ์˜ˆ์ œ์—์„œ fetchDataWithParameter ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด Vuex ์Šคํ† ์–ด์˜ fetchData actions๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ, ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ '์ „๋‹ฌํ•  ํŒŒ๋ผ๋ฏธํ„ฐ'๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. actions ํ•จ์ˆ˜ ๋‚ด์—์„œ context ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์Šคํ† ์–ด ์ƒํƒœ์™€ ๋‹ค๋ฅธ ์•ก์…˜ ๋˜๋Š” ๋ฎคํ…Œ์ด์…˜์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

context

actions์— ์ถ”๊ฐ€ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋Œ€์ถฉ $store๋ฅผ ๋œปํ•œ๋‹ค.

mutations์—์„œ setMore์“ธ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

state ๋ณ€๊ฒฝ์€ ๋ฌด์กฐ๊ฑด mutations๊ฐ€ ํ•œ๋‹ค.

mutations : {
	setMore(state, data){
    	state.more = data
    }
}
profile
์˜ค๋Š˜๋ณด๋‹จ ๋‚ด์ผ์ด ๊ฐ•ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!!๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€