728x90
λ°μν
π‘ μ€μ΅ ν¬μΈνΈ!
π computed μμ보기
methods : {
now(){
return new Date()
}
},
computed : {
now2(){
return new Date()
}
},
- ν¨μλ₯Ό λ§λ€ λ 보ν΅μ methods: { } μμ λ§λ€μ§λ§ computed: { } μμ λ§λλ κ²λ κ°λ₯νλ€.
- λκ°μ΄ λ μ§λ₯Ό μλ €μ£Όλ κΈ°λ₯μ ν¨μλ₯Ό μμ κ°μ΄ methods νλͺ©κ³Ό computed νλͺ©μ κ°κ° λ§λ€μ΄μ μ¬μ©νμ λ μ°¨μ΄μ μ λ€μκ³Ό κ°λ€.
- methods μμ λ§λ ν¨μλ ν¨μλ₯Ό λΆλ₯Ό λλ§λ€ ν΄λΉ ν¨μ μμ μ½λκ° μ€νλλ€.
- computed μμ λ§λ ν¨μλ ν¨μλ₯Ό λΆλ¬λ ν΄λΉ ν¨μ μμ μ½λκ° μ€νλμ§ μλλ€.
computed: { } μμ μμ±ν ν¨μλ κ·Έλ₯ Component λ₯Ό λ‘λν λ λ± νλ²λ§ μ€νλκ³ , κ·Έ κ°μ κ³μ μ μ₯ν΄μ μ¬μ©νλ€. μ¦, μΌμ’ μ κ³μ°κ²°κ³Ό μ μ₯곡κ°μ΄λ€.
- κ·Έλ¦¬κ³ computed λ΄μ ν¨μλ return μ κΌ μ¨μΌνλ©°, ν¨μλ₯Ό κ°μ Έλ€ μ¬μ©ν λμλ μκ΄νΈ μμ΄ ν¨μλͺ λ§ μμ±νλ©΄ λλ€.
π computed λ‘ state μ½λ μΆμ½νκΈ°
computed : {
name(){
return this.$store.state.name
}
}
- vuex λ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ λλ§λ€ $store.state.name~~ κ³Ό κ°μ΄ μ½λλ₯Ό μμ±νκΈ°μλ μ½λκ° λ무 κΈΈκ³ λ³΅μ‘νλ€.
- λ°λΌμ, μμ£Ό μ¬μ©νλ state λ computed νλͺ© μμ μΆκ°ν΄μ£Όλ©΄ μ‘°κΈμ΄λΌλ μ§§κ² μ¬μ©νλ κ²μ΄ κ°λ₯νλ€.
(methods νλͺ© μμ λ£μ΄λ λμ§λ§ computed κ° λ μ μ ν΄λ³΄μ΄λ―λ‘ computed μ λ£μ!) - μ°Έκ³ λ‘ <script></script> μμμ $store λ₯Ό μ¬μ©νλ €λ©΄ this.$store κ³Ό κ°μ΄ μμ this λ₯Ό λΆμ¬μ£Όμ΄μΌ νλ€.
- μ΄μ μμ κ°μ΄ μ½λλ₯Ό μμ±ν΄μ£Όλ©΄, {{ }} μμ name λ§ μ¨λ name μ΄λΌλ state λ₯Ό κ°μ Έλ€ μ¬μ©ν μ μκ² λλ€.
π mapState λ‘ computed μμ μ½λ μΆμ½νκΈ°
import {mapState} from 'vuex'
computed : {
...mapState(['state_μ΄λ¦1', 'state_μ΄λ¦2'])
}
- νμ§λ§ μμ κ°μ΄ computed λ₯Ό νμ©νλ€ν΄λ state κ° λͺμκ°, λͺλ°±κ°κ° μμΌλ©΄ νλνλ state μΆμ½ μ½λλ₯Ό λ§λ€κΈ°κ° νλ€λ€.
- μ΄ λ, mapState λ₯Ό μ¬μ©νλ©΄ λ³΄λ€ νΈνκ² computed μλ€κ° state λ₯Ό λ±λ‘νλ κ²μ΄ κ°λ₯ν΄μ§λ€.
- λΉμ°ν mapState λ₯Ό μ¬μ©νκΈ° μν΄μλ mapState λ₯Ό import ν΄μμΌ νλ€.
import {mapState} from 'vuex'
computed : {
...mapState({ state_κ°μ Έμ¬_λ_μ¬μ©ν _μ΄λ¦1 : 'state_μ΄λ¦1'})
}
- mapState μ object μλ£νμ λ£μΌλ©΄ state λ₯Ό κ°μ Έμ¬ λ μ¬μ©ν μ΄λ¦μ λ°λ‘ μ§μ ν΄μ€ μλ μλ€.
import {mapState, mapMutations} from 'vuex'
computed : {
...mapState(['state_μ΄λ¦1', 'state_μ΄λ¦2']),
...mapMutations([ 'mutations_ν¨μ_μ΄λ¦1', 'mutations_ν¨μ_μ΄λ¦2' ])
}
- μμ κ°μ΄ μ½λλ₯Ό μμ±νλ©΄ mutations λ΄μ ν¨μλ κ°μ Έλ€ μ¬μ©νλ κ²μ΄ κ°λ₯νλ€.
- μλ₯Ό λ€μ΄, mutations λ΄μ changeLikes λΌλ ν¨μκ° μμ λ, ν¨μλ₯Ό μ¬μ©ν λλ§λ€ $store.commit('changeLikes') λΌκ³ μμ±νλ κ²μ changeLikes() μ΄λ κ²λ§ μ½λλ₯Ό μμ±ν΄λ μ¬μ©μ΄ κ°λ₯ν κ²μ΄λ€.
- μ΄μΈμλ mapActions κ°μ κ²λ μλ€κ³ νλ, νμνλ©΄ ꡬκΈλ§ν΄μ μ¬μ©λ°©λ²μ μ΅ν μ§μ μ¬μ©ν΄λ³΄μ.
728x90
λ°μν
'[κ°λ°] Practice > Vue.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Vue.js] Composition API μ¬μ©ν΄λ³΄κΈ°_2 (0) | 2022.04.09 |
---|---|
[Vue.js] Composition API μ¬μ©ν΄λ³΄κΈ° (0) | 2022.04.09 |
[Vue.js] Vuex3: actions νλͺ© μ¬μ©νκΈ° (0) | 2022.04.08 |
[Vue.js] Vuex2: μ’μμ & μ’μμ μ·¨μ & μ’μμ μ¬λΆ νμ κΈ°λ₯ λ§λ€κΈ° (0) | 2022.04.08 |
[Vue.js] Vuex1: Vuex μ ν νκΈ° (0) | 2022.04.07 |