Vux: ν† μŠ€νŠΈμ™€ κ²½κ³  ν‘œμ‹œλŠ” λͺ¨λ‘ μ–‘λ°©ν–₯이며 vuex 단방ν–₯ 데이터 흐름을 μ‚¬μš©ν•  λ•Œ 항상 κ²½κ³ λ₯Ό λ³΄κ³ ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 05μ›” 03일  Β·  12μ½”λ©˜νŠΈ  Β·  좜처: airyland/vux

버전

"vux": "0.0.106"

Android λ˜λŠ” iOS, μ–΄λ–€ λΈŒλΌμš°μ €μΈκ°€μš”?

λͺ¨λ‘

κ·€ν•˜μ˜ μ½”λ“œ

<toast :show="toast.show">{{toast.msg}}</toast>

μ˜ˆμƒλ˜λŠ” 행동과 μ‹€μ œ 행동.

κΈ€λ‘œλ²Œ μ»΄ν¬λ„ŒνŠΈλ‘œ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈλŠ” vuex 단방ν–₯ 데이터 흐름을 직접 μ‚¬μš©ν•˜μ—¬ νŒμ—…μ„ μΌμœΌν‚€μ§€λ§Œ ν† μŠ€νŠΈμ™€ κ²½κ³  ν‘œμ‹œλŠ” λͺ¨λ‘ μ–‘λ°©ν–₯μ΄λ―€λ‘œ κ²½κ³ λ₯Ό 계속 λ³΄κ³ ν•˜κ³  κ°•λ°• μž₯μ• κ°€ λΆˆνŽΈν•©λ‹ˆλ‹€. .

문제λ₯Ό μž¬ν˜„ν•˜λŠ” 단계

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

vuex+vux μ‘°ν•©μ—μ„œλ„ Popup ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•  λ•Œ twoWay에 λ°”μΈλ”©λœ κ²½κ³ κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ²˜μŒμ—λŠ” λ³€κ²½ 사항이 μžˆμ„ λ•Œμ˜ μ΄λ²€νŠΈλ„ λ“£κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€!λ‚˜μ€‘μ— μ—¬κΈ°μ—μ„œ μƒˆλ‘œμš΄ μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. κ³„μ‚°λœ 속성

λ‹€μŒμ€ κ°„λ‹¨ν•œ μ˜ˆμž…λ‹ˆλ‹€.

<template>
  <popup :show.sync="showed">
    <group>
      <switch title="just switch" :value.sync="showed"></switch>
    </group>
   </popup>
</template>

<script>
export default {
  vuex: {
    getters: {
      getShow
    },
    actions: {
      updateShow
    }
  },
  computed: {
    showed: {
      get: function () {
        return this.getShow
      },
      set: function (val) {
        this.updateShow(val)
      }
    }
  }
}
</script>

λͺ¨λ‹ˆν„°λ§ μ΄λ²€νŠΈμ™€ λΉ„κ΅ν•˜μ—¬ 계산 속성 μΊ‘μŠν™”μ˜ μΆ”κ°€ 계측이 μžˆμ§€λ§Œ κ²½κ³ ν•˜κΈ° μœ„ν•΄ μž‘λ³„μ„ κ³ ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

λͺ¨λ“  12 λŒ“κΈ€

κ·Έλž˜μ„œ λ‹Ήμ‹ μ˜ μ œμ•ˆμ€ λ¬΄μ—‡μž…λ‹ˆκΉŒ? TwoWayλŠ” ꡬ성 μš”μ†Œμ˜ λ‚΄λΆ€ μž‘λ™μ΄ ν‘œμ‹œλ₯Ό λ³€κ²½ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μƒνƒœκ°€ λΉ„μ •μƒμ μž…λ‹ˆλ‹€.

twoWayλŠ” μ–‘λ°©ν–₯ 바인딩 μ—¬λΆ€λ₯Ό ν™•μΈν•˜λŠ” κ²ƒλΏμž…λ‹ˆλ‹€. 이제 μ‹œκ°„ κ²½κ³ λ₯Ό ν™•μΈν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ–‘λ°©ν–₯ 바인딩 검증을 μ·¨μ†Œν•˜λŠ” 것을 μ œμ•ˆν•˜μ§€λ§Œ μ—¬μ „νžˆ λ‚΄λΆ€μ μœΌλ‘œ show의 값을 μžλ™μœΌλ‘œ λ³€κ²½ν•˜λ―€λ‘œ μ™ΈλΆ€μ—μ„œ μ–‘λ°©ν–₯을 μ‚¬μš©ν•˜λŠ” 경우 값을 μžλ™μœΌλ‘œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ¬Όλ‘  λ‚˜λŠ” μ™ΈλΆ€μ μœΌλ‘œ μ‡Όμ˜ κ°€μΉ˜λ₯Ό ν†΅μ œν•˜κΈ° μœ„ν•΄ 여기에 μžˆλ‹€.

μ–΄λ–»κ²Œ 생각해?

κ·Έλƒ₯ ν™•μΈν•˜λŠ”κ±° μ•„λ‹˜?

λ¬Όλ‘  검사일 λΏμž…λ‹ˆλ‹€!

TwoWayλ₯Ό μž‘μ„±ν•  ν•„μš”λŠ” μ—†μ§€λ§Œ ꡬ성 μš”μ†Œμ—μ„œ μ—¬μ „νžˆ 동기화에 λ°”μΈλ”©λ˜μ–΄ 있으며 μ–‘λ°©ν–₯일 수 μžˆμŠ΅λ‹ˆλ‹€.

VUE둜 μ΄μ§ν•œμ§€ ν•œλ‹¬ λλŠ”λ° 길이 κΉŠμ§€ μ•Šμ•„μ„œ μ‘°μ–Έ λΆ€νƒλ“œλ¦½λ‹ˆλ‹€ πŸ˜„

μ»΄ν¬λ„ŒνŠΈ 바인딩을 μœ„ν•œ 검증 κΈ°λŠ₯일 λΏμž…λ‹ˆλ‹€. Alert ν‘œμ‹œμ— μ–‘λ°©ν–₯ 바인딩이 ν•„μš”ν•˜μ§€ μ•Šμ€ 경우 on-hide 이벀트λ₯Ό ν†΅ν•΄μ„œλ§Œ show 값을 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

예, κ²½κ³ κ°€ 이미 μžˆμŠ΅λ‹ˆλ‹€. ν† μŠ€νŠΈ, λ‚˜λŠ” λ°”μš΄λ“œ μ‡Όλ₯Ό λ³€κ²½ν•˜κΈ° μœ„ν•΄ setTimeout을 μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘  μˆ¨κΉ€ μƒνƒœκ°€ κ°€μž₯ μ’‹μŠ΅λ‹ˆλ‹€.

λ˜ν•œ toast와 alertλŠ” vuex와 그닀지 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ”λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

@JianleiZhang 은 λ‹€μŒ λ¦΄λ¦¬μŠ€μ—μ„œ κ΅¬ν˜„ν•©λ‹ˆλ‹€.

vuex+vux μ‘°ν•©μ—μ„œλ„ Popup ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•  λ•Œ twoWay에 λ°”μΈλ”©λœ κ²½κ³ κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ²˜μŒμ—λŠ” λ³€κ²½ 사항이 μžˆμ„ λ•Œμ˜ μ΄λ²€νŠΈλ„ λ“£κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€!λ‚˜μ€‘μ— μ—¬κΈ°μ—μ„œ μƒˆλ‘œμš΄ μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. κ³„μ‚°λœ 속성

λ‹€μŒμ€ κ°„λ‹¨ν•œ μ˜ˆμž…λ‹ˆλ‹€.

<template>
  <popup :show.sync="showed">
    <group>
      <switch title="just switch" :value.sync="showed"></switch>
    </group>
   </popup>
</template>

<script>
export default {
  vuex: {
    getters: {
      getShow
    },
    actions: {
      updateShow
    }
  },
  computed: {
    showed: {
      get: function () {
        return this.getShow
      },
      set: function (val) {
        this.updateShow(val)
      }
    }
  }
}
</script>

λͺ¨λ‹ˆν„°λ§ μ΄λ²€νŠΈμ™€ λΉ„κ΅ν•˜μ—¬ 계산 속성 μΊ‘μŠν™”μ˜ μΆ”κ°€ 계측이 μžˆμ§€λ§Œ κ²½κ³ ν•˜κΈ° μœ„ν•΄ μž‘λ³„μ„ κ³ ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

@pzxbc λΈŒλ¦΄λ¦¬μ–ΈνŠΈ : 슀마일리:

@pzxbc getshow 의 값을 μˆ˜μ •ν•˜κΈ° μœ„ν•΄ λŒμ—°λ³€μ΄λ₯Ό λ°œμ†‘ν•œ λ‹€μŒ ν‘œμ‹œλœ 속성을 κ³„μ‚°ν•˜λ©΄ 값이 νŒμ—… κ΅¬μ„±μš”μ†Œμ˜ λ‚΄λΆ€ show κ°’μœΌλ‘œ μ „λ‹¬λ˜μ–΄ κ΅¬μ„±μš”μ†Œ μƒνƒœκ°€ λ³€κ²½λœλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. μœ„μ˜ 것이 λ‚΄κ°€ ν•„μš”λ‘œ ν•˜λŠ” κ²ƒμ΄μ§€λ§Œ λ‚˜λŠ” console.logλ₯Ό μ‚¬μš©ν•˜μ—¬ λŒμ—°λ³€μ΄κ°€ 두 번 ν˜ΈμΆœλ˜μ—ˆμŒμ„ μ°ΎκΈ° λ•Œλ¬Έμ— ν‘œμ‹œλœ λ‹€μŒ 계산 속성이 this.updateShow 섀정에 λ°”μΈλ”©λœ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œλ‹€λŠ” 것을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ μ ‘κ·Ό 방식은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

      set: function (val) {
        if (val === false){
          this.updateAlert(val)
        }
      }
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰