Vue: [2.0.0-rc.1] v-for 및 ref: $refsκ°€ 더 이상 λ°˜μ‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

에 λ§Œλ“  2016λ…„ 08μ›” 17일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: vuejs/vue

2.0.0-rc.1μ—μ„œ λ‹€μŒκ³Ό 같은 ꡬ성

<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">

더 이상 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€( items 둜 인해 ꡬ성 μš”μ†Œ μˆ˜κ°€ λ³€κ²½λ˜λ”λΌλ„ countλŠ” 초기 κ°’μœΌλ‘œ μœ μ§€λ¨). v1μ—μ„œ $ref 배열은 λ°˜μ‘μ μœΌλ‘œ μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€.

이것이 버그인지 κΈ°λŠ₯인지 ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ #2873μ—μ„œλŠ” μ–ΈκΈ‰ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

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

@yyx990803 이것은 computed μ†μ„±μ—μ„œ this.$refs.* λ₯Ό μ‚¬μš©ν•˜λ©΄ v2μ—μ„œλ„ μž‘λ™μ΄

λ‚˜λŠ” ν˜„μž¬ 이와 같이 μžμ‹μ˜ μœ νš¨μ„± 검사 κ²°κ³Όλ₯Ό λΆ€λͺ¨μ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.

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

이것은 μ˜λ„λœ κ²ƒμž…λ‹ˆλ‹€. κ·Έ μ΄μœ λŠ” $refs κ°€ 이제 λ Œλ”λ§ ν”„λ‘œμ„ΈμŠ€ 자체 쀑에 등둝/μ—…λ°μ΄νŠΈλ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. ν…œν”Œλ¦Ώμ—μ„œ $refs λŠ” JavaScript의 ν”„λ‘œκ·Έλž˜λ° 방식 μ•‘μ„ΈμŠ€ μ „μš©μ΄λ―€λ‘œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

이것을 ν¬ν•¨ν•˜λ„λ‘ #2873을 μ—…λ°μ΄νŠΈν–ˆμŠ΅λ‹ˆλ‹€.

@yyx990803 이것은 computed μ†μ„±μ—μ„œ this.$refs.* λ₯Ό μ‚¬μš©ν•˜λ©΄ v2μ—μ„œλ„ μž‘λ™μ΄

λ‚˜λŠ” ν˜„μž¬ 이와 같이 μžμ‹μ˜ μœ νš¨μ„± 검사 κ²°κ³Όλ₯Ό λΆ€λͺ¨μ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.

this.$forceUpdate() 및 setTimeout λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ—…λ°μ΄νŠΈν•˜κ³  $refs κ°€ λ°˜μ‘μ μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜μ§€ μ•ŠλŠ” 것을 찾을 λ•Œ λ·°λ₯Ό λ‹€μ‹œ λ Œλ”λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

this.fetchSomeShit()
.then((data) => {
  this.data = data
  setTimeout(() => {
    this.$forceUpdate()
  })
})

setTimeout λ₯Ό μ‚¬μš© ν•˜μ—¬ vue taskqueue 에 데이터가 μ œκ³΅λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰