Vue: v-forμ—μ„œ 더 λ§Žμ€ μ»¬λ ‰μ…˜ 데이터 μœ ν˜• 지원

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

μ–΄λ–€ μƒν™©μ—μ„œλŠ” ν‰λ²”ν•œ 물건이 μ΅œμ„ μ˜ 선택이 μ•„λ‹™λ‹ˆλ‹€. Map 개체λ₯Ό v-for 둜 λ Œλ”λ§ν•˜λ €κ³  ν–ˆμ§€λ§Œ ν˜„μž¬ Vue μ§€μ›ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. (μ—¬κΈ° 포럼의 도움말 μŠ€λ ˆλ“œμ—μ„œ μž‘μ„±ν•œ κ²Œμ‹œλ¬Ό μž…λ‹ˆλ‹€.)

Vue κ°€ Map 및 Set 와 같은 데이터 μœ ν˜•μ„ λ°˜λ³΅ν•˜κΈ° μœ„ν•΄ v-for 에 for ... of ꡬ문을 μ œκ³΅ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄:

const map = new Map();
map.set('key1', 'val1');
map.set('key2', 'val2');

λ‹€μŒκ³Ό 같이 map λ₯Ό λ Œλ”λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

<ul>
    <li v-for="[key, val] of map">{{key}} - {{val}}</li>
</ul>
feature request

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

λ£¨ν”„μ—μ„œ 반볡자λ₯Ό λ°˜λ³΅ν•  수 μžˆλŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. 그것은 λͺ…λ°±ν•˜κ²Œ 보인닀. μ–Έμ–΄μ˜ κΈ°λ³Έ κΈ°λŠ₯μž…λ‹ˆλ‹€.

μ§€μ›ν•˜λŠ” μ΄μœ λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

1) 반볡자, 맡 및 μ„ΈνŠΈλŠ” λͺ¨λ‘ μœ νš¨ν•œ ES6μž…λ‹ˆλ‹€. 그듀을 μ§€μ›ν•˜κΈ°λ₯Ό κ±°λΆ€ν•œλ‹€λŠ” 것은 ES5둜 μžμ‹ μ„ μ œν•œν•˜λŠ” 것을 μ˜λ―Έν•˜λ©°, μ΄λŠ” μ‹œκ°„μ΄ 지남에 따라 점점 덜 μ •λ‹Ήν™”λ˜λŠ” κ²°μ •μž…λ‹ˆλ‹€.
2) Maps 및 Sets에 λ‚΄λΆ€ 데이터가 μ €μž₯된 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ꡬ좕 μ€‘μž…λ‹ˆλ‹€. UIμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” λŒ€μ‹  이제 두 데이터 간에 데이터λ₯Ό μˆ˜λ™μœΌλ‘œ λ™κΈ°ν™”ν•˜κ±°λ‚˜ μƒμš©κ΅¬λ₯Ό μž‘μ„±ν•˜κ³  ν…œν”Œλ¦ΏμœΌλ‘œ 가져와 데이터가 ν•„μš”ν•  λ•Œλ§ˆλ‹€ λ³€ν™˜μ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이것이 λ°”λ‘œ Vueκ°€ ν”Όν•˜λ €λŠ” κ²ƒμž…λ‹ˆλ‹€.

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

https://github.com/vuejs/vue/issues/1319 의 사본

@wenLiangcan , λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

<ul>
    <li v-for="[key, val] of get(map)">{{key}} - {{val}}</li>
</ul>

μ—¬κΈ°μ„œ get() λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

γ…‹! λΉ„μŠ·ν•œ λ¬Έμ œκ°€ 항상 μ—΄λ € 있고 μ‚¬λžŒλ“€μ€ κ΅¬ν˜„μ„ μ •λ‹Ήν™”ν•  수 μ—†λ‹€κ³  μ£Όμž₯ν•©λ‹ˆλ‹€. μ‚¬λžŒλ“€μ€ 그것을 μ‚¬μš©ν•˜κΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€. 이것이 ν•˜λ‚˜μ˜ μ •λ‹Ήν™”μž…λ‹ˆλ‹€. λ™μΌν•œ 것을 μš”κ΅¬ν•˜λŠ” μˆ˜λ§Žμ€ 문제λ₯Ό λ‚˜μ—΄ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. xD. λ‚˜λŠ” λ˜ν•œ 유슀 μΌ€μ΄μŠ€λ₯Ό 정말 잘 μ •λ‹Ήν™”ν•˜κ³  맡 μˆœμ„œμ™€ κ΄€λ ¨ν•˜μ—¬ es6 사양을 μ°Έμ‘°ν•˜λŠ” 것을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€ -> μ—¬μ „νžˆ λ‹«ν˜€ μžˆμŠ΅λ‹ˆλ‹€.

κΈ°λŠ₯을 μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” μ‚¬λžŒλ“€μ΄ κ·Έ 자체둜 κ·ΈλŸ¬ν•œ κΈ°λŠ₯의 ν•„μš”μ„±μ„ μ •λ‹Ήν™”ν•  수 μžˆλŠ” μ£Όμž₯일 뿐만 μ•„λ‹ˆλΌ κ·ΈλŸ¬ν•œ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” λΉ„μš©κ³Ό 이점(μ–΄λ–€ λ¬Έμ œκ°€ ν•΄κ²°λ˜κ³  μžˆλŠ”μ§€)을 μ €μšΈμ§ˆν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€

λ„€, ν•˜μ§€λ§Œ μ—¬μ „νžˆ μ‚¬λžŒλ“€μ΄ 문제λ₯Ό μ’…κ²°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ£Όμž₯은 λͺ¨λ“  μ‚¬μš© 사둀에 λŒ€ν•΄ μ—¬μ „νžˆ μœ νš¨ν•˜μ§€ μ•Šκ±°λ‚˜ 적어도 μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μœ„μ—μ„œ μ–ΈκΈ‰ν•œ κ²ƒμ²˜λŸΌ μžμ‹ μ˜ μ‚¬μš© 사둀λ₯Ό 맀우 잘 μ •λ‹Ήν™”ν•œ elipen의 예

νŠΉμ • λ¬Έμ œμ— λŒ€ν•΄ λ…Όμ˜ν•˜κ³  μ‹Άλ‹€λ©΄ 링크λ₯Ό κ±Έμ–΄μ£Όμ„Έμš”.

λ˜ν•œ 이 κΈ°λŠ₯ λ¬Έμ œκ°€ μ—΄λ € μžˆμŠ΅λ‹ˆλ‹€. λ™μΌν•œ μš”μ²­μ— λŒ€ν•΄ 두 개 μ΄μƒμ˜ 문제λ₯Ό μ—΄μ–΄λ‘λŠ” 것은 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ£¨ν”„μ—μ„œ 반볡자λ₯Ό λ°˜λ³΅ν•  수 μžˆλŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. 그것은 λͺ…λ°±ν•˜κ²Œ 보인닀. μ–Έμ–΄μ˜ κΈ°λ³Έ κΈ°λŠ₯μž…λ‹ˆλ‹€.

μ§€μ›ν•˜λŠ” μ΄μœ λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

1) 반볡자, 맡 및 μ„ΈνŠΈλŠ” λͺ¨λ‘ μœ νš¨ν•œ ES6μž…λ‹ˆλ‹€. 그듀을 μ§€μ›ν•˜κΈ°λ₯Ό κ±°λΆ€ν•œλ‹€λŠ” 것은 ES5둜 μžμ‹ μ„ μ œν•œν•˜λŠ” 것을 μ˜λ―Έν•˜λ©°, μ΄λŠ” μ‹œκ°„μ΄ 지남에 따라 점점 덜 μ •λ‹Ήν™”λ˜λŠ” κ²°μ •μž…λ‹ˆλ‹€.
2) Maps 및 Sets에 λ‚΄λΆ€ 데이터가 μ €μž₯된 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ꡬ좕 μ€‘μž…λ‹ˆλ‹€. UIμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” λŒ€μ‹  이제 두 데이터 간에 데이터λ₯Ό μˆ˜λ™μœΌλ‘œ λ™κΈ°ν™”ν•˜κ±°λ‚˜ μƒμš©κ΅¬λ₯Ό μž‘μ„±ν•˜κ³  ν…œν”Œλ¦ΏμœΌλ‘œ 가져와 데이터가 ν•„μš”ν•  λ•Œλ§ˆλ‹€ λ³€ν™˜μ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이것이 λ°”λ‘œ Vueκ°€ ν”Όν•˜λ €λŠ” κ²ƒμž…λ‹ˆλ‹€.

#1319κ°€ νμ‡„λ˜μ—ˆμœΌλ―€λ‘œ μ—¬κΈ°μ—μ„œ ν˜„μž¬ 결정을 λ°˜λ³΅ν•  κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. κ°„λ‹¨νžˆ λ§ν•΄μ„œ 이 κΈ°λŠ₯은 (κ΄€μ°° λ©”μ»€λ‹ˆμ¦˜ μˆ˜μ€€μ—μ„œ) κ΅¬ν˜„ν•˜κΈ°κ°€ 쉽지 μ•ŠμœΌλ―€λ‘œ μ‚¬μš© 사둀λ₯Ό μ •λ‹Ήν™”ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μž‘μ—…λŸ‰κ³Ό μ ˆμΆ©μ•ˆμ΄ μ€‘μš”ν•©λ‹ˆλ‹€.

이 κΈ°λŠ₯도 정말 κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°˜λ©΄μ— ES6 데이터 μœ ν˜•μ„ κ΄€μ°°ν•˜λŠ” 것이 맀우 ν•΄ν‚Ήλ˜κ±°λ‚˜ 예λ₯Ό λ“€μ–΄ μ„±λŠ₯μ΄λ‚˜ 기타 ν’ˆμ§ˆμ΄ μ €ν•˜λ˜λŠ” 경우 ν˜„μž¬ Vueμ—μ„œ Maps 및 Setsλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ‚¬λžŒλ“€μ€ 이 λ³€κ²½ 사항을 μ΄ν•΄ν•˜μ§€ λͺ»ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ³„μ‚°λœ ν•¨μˆ˜ λ‚΄μ—μ„œ Array.from()을 μ‚¬μš©ν•˜λŠ” 것이 μ§€κΈˆμ€ κ°€μž₯ μΉœν•œ μΉœκ΅¬κ°€ λ˜μ–΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. :μ‹€λ§ν•œ:

이에 λŒ€ν•œ 해결책이 μžˆμŠ΅λ‹ˆκΉŒ?

μž‘μ€ μ—…λ°μ΄νŠΈ, 이것은 Vueκ°€ "λ ˆκ±°μ‹œ" λΈŒλΌμš°μ €λ₯Ό μ‚­μ œν•˜κΈ°λ‘œ κ²°μ •ν•˜κ³  λ°˜μ‘μ„±μ„ μœ„ν•΄ set / get λŒ€μ‹  Proxy μ‚¬μš©ν•˜μ—¬ Evergreen λΈŒλΌμš°μ €λ‘œ μ΄λ™ν•˜λŠ” 경우 μ œκ³΅λ©λ‹ˆλ‹€.

@alexsandro-xpt, Array.from(yourDataSet) λ₯Ό λ°˜ν™˜ν•˜λŠ” 계산 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

@nickmessing Map으둜 μ‹œλ„
κ³„μ‚°λœ λ°°μ—΄ 길이 값은 항상 0μž…λ‹ˆλ‹€.

Array.from λŠ” λ°˜μ‘μ„± λΆ€μ‘±μœΌλ‘œ 인해 μ›ν•˜λŠ” μ†”λ£¨μ…˜μ΄ 아닐 수 μžˆμŠ΅λ‹ˆλ‹€( yourDataSet λ³€κ²½ 사항은 Vue에 μ „νŒŒλ˜μ§€ μ•ŠμŒ).

μ•žμ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ μ„ΈνŠΈμ™€ 맡은 Vueμ—μ„œ κ΄€μ°°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. v-for λ˜λŠ” κ³„μ‚°λœ 속성, λ©”μ„œλ“œ, κ°μ‹œμž, ν…œν”Œλ¦Ώ ν‘œν˜„μ‹ λ“±μ—μ„œ 이λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ 이 ꡬ쑰의 직렬화 κ°€λŠ₯ν•œ λ³΅μ œλ³Έμ„ λ§Œλ“€κ³  Vue에 λ…ΈμΆœν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‹€μŒμ€ Vue에 Set이 μ—…λ°μ΄νŠΈλ˜μ—ˆλ‹€λŠ” 정보λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ κ°„λ‹¨ν•œ μΉ΄μš΄ν„°λ₯Ό μ‚¬μš©ν•˜λŠ” μˆœμ§„ν•œ μ˜ˆμž…λ‹ˆλ‹€.

data() {
  mySetChangeTracker: 1,
  mySet: new Set(),
},

computed: {
  mySetAsList() { 
    // By using `mySetChangeTracker` we tell Vue that this property depends on it,
    // so it gets re-evaluated whenever `mySetChangeTracker` changes
    return this.mySetChangeTracker && Array.from(this.mySet);
  },
},

methods: {
  add(item) {
    this.mySet.add(item);
    // Trigger Vue updates
    this.mySetChangeTracker += 1;
  }
}

이것은 κ΄€μ°°ν•  수 μ—†λŠ” 데이터λ₯Ό λ°˜μ‘μ μœΌλ‘œ λ§Œλ“€κΈ° μœ„ν•œ μΌμ’…μ˜ ν•΄ν‚Ήμ΄μ§€λ§Œ 100% μž‘μ—… 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  μ‹€μ œ μƒν™©μ—μ„œλŠ” Sets/Maps의 μ§λ ¬ν™”λœ λ²„μ „μœΌλ‘œ λλ‚¬μŠ΅λ‹ˆλ‹€(예: μˆ˜μ •λœ λ²„μ „μ˜ μ„ΈνŠΈ/맡을 localstorage에 μ €μž₯ν•˜μ—¬ μ–΄μ¨Œλ“  μ§λ ¬ν™”ν•˜κ³  싢을 κ²ƒμž…λ‹ˆλ‹€). λ”°λΌμ„œ μΈμœ„μ μΈ μΉ΄μš΄ν„°/해킹이 ν¬ν•¨λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 개인적으둜 이것이 λ¬Έμ œμ— λŒ€ν•œ κ³΅μ •ν•œ 해결책이라고 μƒκ°ν•˜μ§€λ§Œ, ν™•μ‹€νžˆ 곡식 λ¬Έμ„œλ₯Ό 받을 κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ 이것을 Vue λ‚΄λΆ€λ₯Ό λ‹€λ£¨λŠ” λΉ„ ν•΄ν‚Ή λ°©μ‹μœΌλ‘œ μ •λ‹Ήν™”ν•˜λŠ” 것이 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

@alexsandro-xpt, μ£„μ†‘ν•©λ‹ˆλ‹€. μ œκ°€ ν‹€λ ΈμŠ΅λ‹ˆλ‹€. @incaκ°€ λ§ν–ˆλ“―μ΄ 계산은 해킀될 κ²ƒμž…λ‹ˆλ‹€. 또 λ‹€λ₯Έ ν•΄ν‚€ μ†”λ£¨μ…˜μ€ $forceUpdate λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 여기에 λ°”μ΄μ˜¬λ¦° 의 μ˜ˆκ°€ μžˆμŠ΅λ‹ˆλ‹€.

@nickmessing κ³Ό @inca μ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. 이것은 제 new Map() 잘 μž‘λ™ν•©λ‹ˆλ‹€ !!

λ°”λ‘œ μ§€κΈˆ "Map"에 λŒ€ν•΄ "v-for"λ₯Ό μˆ˜ν–‰ν•˜λ©΄ v-forλŠ” 빈 배열을 μˆ˜μ‹ ν•œ κ²ƒμ²˜λŸΌ μž‘λ™ν•©λ‹ˆλ‹€.

Maps 및 Sets 지원 μ—¬λΆ€/방법에 λŒ€ν•œ ν™•μž₯된 ν† λ‘ μ˜ 결과에 관계없이 Vueκ°€ λ‹¨μˆœνžˆ "Maps 및 SetsλŠ” 아직 μ§€μ›λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ -- https://github μ°Έμ‘°"라고 κ²½κ³ ν•˜λ©΄ λ§Žμ€ μ‚¬λžŒλ“€μ΄ 디버깅 μ‹œκ°„μ„ 많이 μ ˆμ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

예, 이 κΈ°λŠ₯에 λŒ€ν•œ Google κ²€μƒ‰μœΌλ‘œ 이 티켓이 ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€(Vue.setκ³Ό λͺ‡ 가지 μ„±κ°€μ‹  ν˜Όλ™ ν›„).

πŸ‘ 이것은 v-for λ¬Έμ„œμ— μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€!

μ •λ§λ‘œ, v-for λ¬Έμ„œμ— μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€!

/cc @chrisvfritz v-for (API와 λͺ©λ‘ λ Œλ”λ§ μ„Ήμ…˜ λͺ¨λ‘)에 λŒ€ν•œ λ¬Έμ„œμ— μ΄λŸ¬ν•œ μœ ν˜•μ— λŒ€ν•œ 지원에 λŒ€ν•œ λ©”λͺ¨λ₯Ό μΆ”κ°€ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 2.5μ—μ„œλ„ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

@ yyx990803 μ½˜μ†” κ²½κ³ κ°€ 이에 λŒ€ν•΄ 더 λ‚˜μ€μ§€ κΆκΈˆν•©λ‹ˆλ‹€. μ‚¬λžŒλ“€μ—κ²Œ μ¦‰μ‹œ 무엇이 잘λͺ»λ˜μ—ˆλŠ”지 μ•Œλ €μ£Όκ³  μ†”λ£¨μ…˜μ„ 검색할 ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

μš°λ¦¬λŠ” λ˜ν•œ λ¬Έμ„œμ—μ„œ 이미 지원 _do_ ν•˜λŠ” μœ ν˜•, Map 및 Set λ˜μ§€ μ•ŠμŒμ— λŒ€ν•΄ 맀우 λͺ…μ‹œμ μž…λ‹ˆλ‹€. λͺ¨λ“  iterablesκ°€ v-for 와 ν•¨κ»˜ μž‘λ™ν•˜κΈ°λ₯Ό _희망_ν•  수 μžˆλŠ” μ΄μœ μ— λŒ€ν•œ μ£Όμž₯을 ν™•μ‹€νžˆ μ•Œ 수 μžˆμ§€λ§Œ ν˜„μž¬ λ…μžλ“€μ—κ²Œ 그듀이 κ·Έλ ‡κ²Œ ν•  것이라고 κΈ°λŒ€ν•  이유λ₯Ό μ£Όμ§€λŠ” μ•ŠλŠ”λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

Set λŒ€ν•œ 지원을 μΆ”κ°€ν•˜λŠ” 것에 λ°˜λŒ€ν•˜λŠ” μ£Όμž₯은 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

Set μžμ²΄λŠ” κΉ”λ”ν•˜κ²Œ 폴리필할 수 있고, λ‚΄κ°€ λ­”κ°€λ₯Ό λ†“μΉ˜κ³  μžˆμ§€ μ•ŠλŠ” ν•œ 배열에 λ°˜μ‘μ„±μ„ μΆ”κ°€ν•˜λŠ” Vue의 μ ‘κ·Ό 방식은 μ„ΈνŠΈλ‘œ 맀우 μ‰½κ²Œ ν™•μž₯될 수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€. .add() , .clear() 및 .delete() 만 λž˜ν•‘ν•˜λ©΄ λ©λ‹ˆλ‹€.

μ΅œμ„ μ˜ μΆ”μΈ‘(μ œκ°€ ν‹€λ Έλ‹€λ©΄ μ •μ •/μ£„μ†‘ν•©λ‹ˆλ‹€): κ°€μž₯ κΉŒλ‹€λ‘œμš΄ 뢀뢄은 iterable을 ν—ˆμš©ν•˜λŠ” Set μƒμ„±μžλ₯Ό λž˜ν•‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 일반적인 ν˜•νƒœμ—μ„œλŠ” μ°Έμ‘° κ°€λŠ₯ν•œ μƒνƒœκ°€ μ—†λŠ” ν•¨μˆ˜(예: next )이기 λ•Œλ¬Έμ— 반볡 κ°€λŠ₯을 κ΄€μ°° κ°€λŠ₯ν•˜κ²Œ λ§Œλ“œλŠ” 방법을 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€(μ œλ„ˆλ ˆμ΄ν„° 기반 반볡기λ₯Ό 예둜 생각해 λ³΄μ„Έμš”).

μƒμ„±μžλ₯Ό λž˜ν•‘ν•΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? κΈ°μ‘΄ Set을 Vue에 μ „λ‹¬ν•˜μ§€ μ•Šμ„κΉŒμš”?

사양 에 λ”°λ₯΄λ©΄ Set μƒμ„±μžλŠ” 전체 반볡자λ₯Ό 톡해 μ¦‰μ‹œ μ‹€ν–‰λ˜μ–΄ λ°˜λ³΅μžκ°€ λ°˜ν™˜ν•œ 고유 ν•­λͺ©μ˜ 얕은 볡사본을 효과적으둜 μœ μ§€ν•©λ‹ˆλ‹€. Set μΈμŠ€ν„΄μŠ€κ°€ 있으면 iteratorμ—μ„œ μƒμ„±λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λŠ” μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 μ μ—μ„œ, Set λ‘œλΆ€ν„° 생성은 반볡자 (톡해 λ°˜λ³΅κΈ°λ‘œλΆ€ν„° 생성 λ°°μ—΄ λ‹€λ₯΄μ§€ μ—†μ–΄μ•Ό Array.from() ), λ·° 이미 지지체.

λ³€κ²½ν•  수 μ—†λŠ” Maps/sets/ 데이터 ꡬ쑰λ₯Ό μ‚¬μš©ν•  수 있으며 이에 λŒ€ν•œ λ°˜μ‘μ„±μ„ ν—ˆμš©ν•˜μ§€λ§Œ λ‹¨μˆœνžˆ 전체 청크 μ°Έμ‘°κ°€ λ³€κ²½λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. λ Œλ”λ§ ν•¨μˆ˜ λ˜λŠ” κ³„μ‚°λœ μƒμ„±λœ 배열을 톡해 λ Œλ”λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€(λ°°μ—΄ 생성을 κ±΄λ„ˆλ›°λ―€λ‘œ μ„±λŠ₯이 λΉ λ₯Όμˆ˜λ‘ μ’‹μŠ΅λ‹ˆλ‹€.). κ·ΈλŸ¬λ‚˜ κ°€λ³€ 데이터 κ΅¬μ‘°λŠ” Vue에 νŠΉμ • λ³€κ²½ 사항을 μˆ˜λ™μœΌλ‘œ μ•Œλ¦¬λŠ” 방법을 찾지 μ•ŠλŠ” ν•œ 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹¨μˆœνžˆ 자체 μ†”λ£¨μ…˜μ„ λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€.

그건 쒋지 μ•Šμ•„. 당신은 그것을 ν•  수 μ—†μŠ΅λ‹ˆλ‹€

@wenLiangcan

var map = new Map()
  map.set('key1','Test1')
  map.set('key2','Test2')
        <div class="file-size">{{value}}</div>
 </div>

μ•„λ‹ˆμš”, νŽ˜μ΄μ§€μ— ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이것에 λŒ€ν•œ 지원을 μ—΄λ§ν•˜μ‹­μ‹œμ˜€ :)

저도 μš”

지원을 μΆ”κ°€ν•  ν–₯ν›„ κ³„νšμ΄ μžˆμŠ΅λ‹ˆκΉŒ? Vueκ°€ Mapκ³Ό Set을 μ§€μ›ν•˜μ§€ λͺ»ν•˜λŠ” 기술적인 μ΄μœ κ°€ μžˆλ‚˜μš”?

일반 κ°œμ²΄μ— λŒ€ν•œ Vue.set λ©”μ„œλ“œμ˜ ν˜„μž¬ λ¬Έμ œλŠ” 속성이 κ°œμ²΄μ— 좔가될 λ•Œ λ„ˆλ¬΄ λ§Žμ€ κ΅¬λ…μžλ₯Ό νŠΈλ¦¬κ±°ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ λͺ¨λ“  μ†μ„±μ˜ λͺ¨λ“  κ΅¬λ…μžλŠ” 속성이 ν•˜λ‚˜λ§Œ 좔가될 λ•Œ νŠΈλ¦¬κ±°λ©λ‹ˆλ‹€.

μ»¬λ ‰μ…˜κ³Ό 같은 맡에 100λΆ„μ˜ 1 ν‚€κ°€ ν¬ν•¨λ˜μ–΄ 있으면 보기의 μ„±λŠ₯이 크게 μ €ν•˜λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ Vue.set μž‘μ—…μ„ μ‚¬μš©ν•˜μ—¬ ν•˜λ‚˜μ˜ μš”μ†Œκ°€ 맡에 μΆ”κ°€λ˜λ©΄ 수천 λͺ…μ˜ κ΅¬λ…μžκ°€ νŠΈλ¦¬κ±°λ©λ‹ˆλ‹€.

Vue.set(state.items, itemId, item); // where items is a plain object.

Vue.js μ½”λ“œλ₯Ό μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λ©΄ λ¬Έμ œκ°€ μ–΄λ””μ—μ„œ μ™”λŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. νŠΈλ¦¬κ±°λ˜λŠ” 쒅속성은 개체의 μ’…μ†μ„±μž…λ‹ˆλ‹€. 즉, κ°œμ²΄μ— 각 킀에 λŒ€ν•΄ ν•˜λ‚˜μ˜ 속성이 μžˆλŠ” 경우 ν•˜λ‚˜μ˜ ν‚€λ§Œ μΆ”κ°€ν•˜λ©΄ λͺ¨λ“  ν‚€μ˜ λͺ¨λ“  쒅속성이 νŠΈλ¦¬κ±°λ©λ‹ˆλ‹€.

λ”°λΌμ„œ 지도λ₯Ό λͺ¨λ°©ν•˜κΈ° μœ„ν•΄ 일반 객체λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 μ˜¬λ°”λ₯Έ μ†”λ£¨μ…˜μœΌλ‘œ 보이지 μ•ŠμœΌλ―€λ‘œ vueμ—μ„œ 지도λ₯Ό μ§€μ›ν•˜λŠ” 것은 λŒ€κ·œλͺ¨ ν•­λͺ© μ»¬λ ‰μ…˜μ— λŒ€ν•΄ ν™˜μ˜λ°›λŠ” 것 μ΄μƒμž…λ‹ˆλ‹€.

ν–₯ν›„ κ³„νš 및 κΈ°λ³Έ Map/Set 지원에 λŒ€ν•œ μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

이 κΈ°μ‚¬μ—μ„œλŠ” 2.6μ—μ„œ μ˜ˆμ •λœ 지원에 λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‚΄κ°€ λ³Ό 수 μžˆλŠ” 곡식 λ‘œλ“œλ§΅μ—λŠ” 이에 λŒ€ν•œ λ‚΄μš©μ΄ μ—†μŠ΅λ‹ˆλ‹€.

https://medium.com/@alberto.park/the -status-of-javascript-libraries-frameworks-2018-beyond-3a5a7cae7513

"ν˜„μž¬ μ΅œμ‹  μ½”μ–΄λŠ” 2.5.xμž…λ‹ˆλ‹€. λ‹€μŒ λΆ€ 릴리슀(v2.6)λŠ” κΈ°λ³Έ ESM κ°€μ Έμ˜€κΈ°, ν–₯μƒλœ 비동기 였λ₯˜ 처리, 'v-for' μ§€μ‹œλ¬Έμ— λŒ€ν•œ 반볡기 등을 지원할 κ²ƒμž…λ‹ˆλ‹€."

μ–΄λ””μ„œ κ·Έ 정보λ₯Ό μ–»μ—ˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

Set 데이터 κ°œμ²΄μ— λŒ€ν•œ λ„λŒ€μ²΄ Vue의 λ™μž‘μ„ λ””λ²„κΉ…ν•˜λŠ” λ™μ•ˆ 이 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. :생각:

이에 λŒ€ν•œ λ‘œλ“œλ§΅μ— λŒ€ν•΄ κΆκΈˆν–ˆλ˜ 저와 같은 μ‚¬λžŒλ“€μ„ μœ„ν•΄ Evan YouλŠ” 이 λΉ„λ””μ˜€ μ—μ„œ Map and Set 지원이 2.6에 도착할 "κ°€λŠ₯μ„±"이 μžˆμ§€λ§Œ 그것이 5μ›”μ΄μ—ˆμœΌλ―€λ‘œ μ œκ°€ μ•„λŠ” 전뢀라고 λ§ν–ˆμŠ΅λ‹ˆλ‹€.

@yyx990803 특히 κ°€κΉŒμš΄ μž₯λž˜μ— 지원을 μΆ”κ°€ν•  κ³„νšμ΄λΌλ©΄ μΆ”μ κΈ°μ˜ 이 λ¬Έμ œκ°€ μ’…λ£Œλœ κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ–΄ μœ κ°μž…λ‹ˆλ‹€. 이 κΈ°λŠ₯의 진행 상황을 μ–΄λ””μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ? μ–΄λ”˜κ°€μ— λ‹€λ₯Έ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

λ…ΌμŸμ„ μœ„ν•΄ κΆκΈˆν•˜κ³  μ–΄μ©Œλ©΄ λ‚΄κ°€ 잘λͺ»ν•˜κ³  μžˆμ„μ§€λ„ λͺ¨λ₯΄μ§€λ§Œ Mutation Methodsλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°°μ—΄ λŒμ—°λ³€μ΄λ₯Ό 좔적할 수 있기 λ•Œλ¬Έμ— 객체의 배열을 μΆ”μ ν•˜κ³  λ…Όλ¦¬μ μœΌλ‘œ μ™„μ „ν•  수 μ—†μŠ΅λ‹ˆκΉŒ? Mapμ—μ„œ κ΅¬ν˜„λœ λ™μΌν•œ κΈ°λŠ₯을 λͺ¨λ‘ μ–»μ§€λŠ” λͺ»ν•˜μ§€λ§Œ 특히 _ λ˜λŠ” lodash와 같은 것을 μ‚¬μš©ν•˜λŠ” 경우 μ›ν•˜λŠ” κΈ°λŠ₯을 맀우 μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μŠ¬ν”„μ§€λ§Œ νŒ€μ΄ 이것을 μΆ”κ°€ν•  λ•ŒκΉŒμ§€ λŒ€μ²΄ 데이터 ꡬ쑰λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

데이터 ꡬ쑰에 Map을 μ‚¬μš©ν•˜κΈ°λ‘œ ν•˜κ³  μžμ‚¬ 지원이 λΆ€μ‘±ν•˜μ—¬ 이λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠκΈ°λ‘œ κ²°μ •ν–ˆλ‹€λŠ” μ μ—μ„œ μ°¨μž„ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

이것은 vue.js v3.0용으둜 κ³„νšλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
비ꡐ: https://medium.com/the-vue-point/plans-for-the-next-iteration-of-vue-js-777ffea6fabf

이것은 ν˜„μž¬ Vue3μ—μ„œ μ§€μ›λ©λ‹ˆκΉŒ(즉, reactive Map 및 Set )?

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