Vue: v-for . рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдлрд╝рд░ре░ 2016  ┬╖  39рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╕рд╛рджрд╛ рд╡рд╕реНрддреБ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ Map рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ v-for рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Vue рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред (рдпрд╣рд╛рдВ рдПрдХ рдкреЛрд╕реНрдЯ рд╣реИ

рдЖрд╢рд╛ рд╣реИ рдХрд┐ Vue for ... of рдореЗрдВ v-for for ... of рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ Map рдФрд░ Set рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╣реЛ рд╕рдХреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

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>

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд▓реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рднрд╛рд╖рд╛ рдХреА рдореМрд▓рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ:

1) рдЗрдЯрд░реЗрдЯрд░реНрд╕, рдореИрдкреНрд╕ рдФрд░ рд╕реЗрдЯ рд╕рднреА рдорд╛рдиреНрдп ES6 рд╣реИрдВред рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЕрдкрдиреЗ рдЖрдк рдХреЛ ES5 рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдирд╛, рдЬреЛ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрдо рдФрд░ рдЙрдЪрд┐рдд рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рдирд┐рд░реНрдгрдп рд╣реИред
2) рдореИрдВ рдПрдХ рдРрд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдФрд░ рд╕реЗрдЯ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛред рдЙрдиреНрд╣реЗрдВ 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 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ -> рдЕрднреА рднреА рдмрдВрдж рд╣реИред

рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧ, рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, рдПрдХ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЙрдЪрд┐рдд рдард╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИ, рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд▓рд╛рдЧрдд рдФрд░ рд▓рд╛рдн (рдХреМрди рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ) рдХреЛ рддреМрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рди рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрднреА рднреА рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдПрд▓реАрдкреЗрди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЬрд┐рд╕рдиреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЙрд╕рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВред

рд╕рд╛рде рд╣реА, рдпрд╣ рдлреАрдЪрд░ рдЗрд╢реНрдпреВ рдЦреБрд▓рд╛ рд╣реИред рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЗ рдЦреЛрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рд▓реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рднрд╛рд╖рд╛ рдХреА рдореМрд▓рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ:

1) рдЗрдЯрд░реЗрдЯрд░реНрд╕, рдореИрдкреНрд╕ рдФрд░ рд╕реЗрдЯ рд╕рднреА рдорд╛рдиреНрдп ES6 рд╣реИрдВред рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЕрдкрдиреЗ рдЖрдк рдХреЛ ES5 рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдирд╛, рдЬреЛ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрдо рдФрд░ рдЙрдЪрд┐рдд рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рдирд┐рд░реНрдгрдп рд╣реИред
2) рдореИрдВ рдПрдХ рдРрд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдФрд░ рд╕реЗрдЯ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛред рдЙрдиреНрд╣реЗрдВ UI рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореБрдЭреЗ рдЕрдм рдбреЗрдЯрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд▓рд┐рдЦрдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ Vue рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ #1319 рдмрдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрдгрдп рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ (рдЕрд╡рд▓реЛрдХрди рддрдВрддреНрд░ рд╕реНрддрд░ рдкрд░), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдЯреНрд░реЗрдб-рдСрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдореИрдВ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ ES6 рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рдпрд╛ рдЕрдиреНрдп рдЧреБрдгреЛрдВ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЬреЛ рд▓реЛрдЧ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдкреНрд╕ рдФрд░ Vue рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ Array.from() рдХрд╛ рдЙрдкрдпреЛрдЧ

рдЙрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрд╛рдп?

рдЫреЛрдЯрд╛ рдЕрдкрдбреЗрдЯ, рдпрд╣ рддрдм рдЖрдПрдЧрд╛ рдЬрдм/рдЬрдм Vue "рд╡рд┐рд░рд╛рд╕рдд" рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЗ рд▓рд┐рдП set / get рдХреЗ рдмрдЬрд╛рдп Proxy рд╕рд╛рде рд╕рджрд╛рдмрд╣рд╛рд░ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред

@ alexsandro-xpt, рдмрд╕ рдПрдХ рдкрд░рд┐рдХрд▓рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ Array.from(yourDataSet) рд▓реМрдЯрд╛рддрд╛ рд╣реИред

@nickmessing рдореИрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдХрд▓рд┐рдд рд╕рд░рдгреА рд▓рдВрдмрд╛рдИ рдорд╛рди рд╣рдореЗрд╢рд╛ 0 рд╣реЛрддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдХреЗрд╡рд▓ Array.from рд╢рд╛рдпрдж рд╡рд╣ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ ( yourDataSet рдкрд░рд┐рд╡рд░реНрддрди Vue рдореЗрдВ рдкреНрд░рдЪрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)ред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реЗрдЯ рдФрд░ рдорд╛рдирдЪрд┐рддреНрд░ Vue рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдпрд╛ рддреЛ v-for , рдпрд╛ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ, рджрд░реНрд╢рдХреЛрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдЖрджрд┐ рдореЗрдВ - рдЖрдкрдХреЛ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреА рдПрдХ рдХреНрд░рдорд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ Vue рдХреЗ рд╕рд╛рдордиреЗ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕реЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде Vue рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

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% рдХрд╛рд░реНрдп рдкрджреНрдзрддрд┐ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореИрдВ рд╕реЗрдЯреНрд╕/рдореИрдкреНрд╕ рдХреЗ рдХреНрд░рдордмрджреНрдз рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рд╢рд╛рдпрдж рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕реЗрдЯ/рдореИрдкреНрд╕ рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рд╡реИрд╕реЗ рднреА рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдХреГрддреНрд░рд┐рдо рдХрд╛рдЙрдВрдЯрд░/рд╣реИрдХреНрд╕ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдереЗред

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рдпреЛрдЧреНрдп рд╣реИ - рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ Vue рдЗрдВрдЯрд░реНрдирд▓ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдЧреИрд░-рд╣реИрдХреА рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

@ alexsandro-xpt, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЧрд▓рдд рдерд╛, рдЧрдгрдирд╛ рд╣реИрдХреА рд╣реЛрдЧреА рдЬреИрд╕рд╛ рдХрд┐ рд╣реИрдХреА рд╕рдорд╛рдзрд╛рди рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде $forceUpdate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╣реЗрд▓реА рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж @nickmessing рдФрд░ @inca , рдпрд╣ рдореЗрд░реЗ new Map() рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ !!

рдЕрднреА рдЬрдм рдЖрдк "рдорд╛рдирдЪрд┐рддреНрд░" рдкрд░ "v-for" рдХрд░рддреЗ рд╣реИрдВ, рддреЛ v-for рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЙрд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдорд┐рд▓реА рд╣реЛред

рдореИрдкреНрд╕ рдФрд░ рд╕реЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЪрд░реНрдЪрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдордп рдмрдЪрд╛рдПрдЧрд╛ рдпрджрд┐ Vue рдиреЗ рдХреЗрд╡рд▓ рдЪреЗрддрд╛рд╡рдиреА рджреА "рдореИрдкреНрд╕ рдФрд░ рд╕реЗрдЯ рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ - https://github рджреЗрдЦреЗрдВ .com/vuejs/vue/issues/2410 "ред

рд╣рд╛рдБ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП Google рдЦреЛрдЬ рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдЯрд┐рдХрдЯ рдкрд░ рд▓рд╛рдпрд╛ (Vue.set рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╖реНрдЯрдкреНрд░рдж рдорд┐рд╢реНрд░рдг рдХреЗ рдмрд╛рдж)

рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП v- рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП!

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реА-рдлреЙрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП!

/cc @chrisvfritz рдЖрдЗрдП v-for (рджреЛрдиреЛрдВ API рдФрд░ рд╕реВрдЪреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЕрдиреБрднрд╛рдЧ) рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдиреЛрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ - рдореИрдВ 2.5 рдореЗрдВ рдЙрди рдкрд░ рднреА рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛ред

@ yyx990803 рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЪреЗрддрд╛рд╡рдиреА рдмреЗрд╣рддрд░ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рддреБрд░рдВрдд рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред

рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ _do_ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, Map рдФрд░ Set рдЙрдирдореЗрдВ рд╕реЗ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░реНрдХ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ _рд╣реЛрдк_ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреНрдпреЛрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ v-for , рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд╛рдардХреЛрдВ рдХреЛ рдЙрдореНрдореАрдж рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рджреЗрддреЗ рд╣реИрдВред

рдореБрдЭреЗ Set рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рддрд░реНрдХ рдмрд┐рд▓реНрдХреБрд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред

Set рдЦреБрдж рдХреЛ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдкреЙрд▓реАрдлрд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рддрдХ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕реЗрдЯ рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдХреЗрд╡рд▓ .add() , .clear() , рдФрд░ .delete() рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди (рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдХреГрдкрдпрд╛ рд╕рд╣реА рдХрд░реЗрдВ/рдХреНрд╖рдорд╛ рдХрд░реЗрдВ): рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ Set рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдиреАрдп рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреИрд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди (рдпрд╛рдиреА next ) рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдпреЛрдЧреНрдп рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЗрдирд░реЗрдЯрд░-рдЖрдзрд╛рд░рд┐рдд рдЗрдЯрд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ)ред

рд╣рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕реЗрдЯреНрд╕ рдХреЛ Vue рдореЗрдВ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдХрд▓реНрдкрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, Set рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддреБрд░рдВрдд рдкреВрд░реЗ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдЕрджреНрд╡рд┐рддреАрдп рдЖрдЗрдЯрдо рдХреА рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ Set рдЙрджрд╛рд╣рд░рдг рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред

рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ Set рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╕рд░рдгреА рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ( Array.from() рдорд╛рдзреНрдпрдо рд╕реЗ), рдЬреЛ Vue рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╛рдирдЪрд┐рддреНрд░/рд╕реЗрдЯ/рдЬреЛ рднреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╕рдВрдкреВрд░реНрдг рдЦрдВрдб рд╕рдВрджрд░реНрдн рдмрджрд▓рддрд╛ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдХрдВрдкреНрдпреВрдЯреЗрдб рдЬреЗрдирд░реЗрдЯреЗрдб рдПрд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдПрдХ рд╕рд░рдгреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ ..)ред рд▓реЗрдХрд┐рди рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ, рдРрд╕рд╛ рддрдм рддрдХ рдирд╣реАрдВ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ Vue рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ рд╣реЛрдордмреНрд░реЗрдЗрдВрдЧ рд╡рд░реНрд╖ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдпрд╣ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

@wenLiangcan

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

рдирд╣реАрдВ, рдпрд╣ рдкреЗрдЬ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛

рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ :)

рдореИрдВ рднреА

рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛? рдХреНрдпрд╛ рдХреЛрдИ рддрдХрдиреАрдХреА рдХрд╛рд░рдг рд╣реИ рдХрд┐ Vue рдорд╛рдирдЪрд┐рддреНрд░ рдФрд░ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛?

рдПрдХ рд╕рд╛рджреЗ рд╡рд╕реНрддреБ рдкрд░ Vue.set рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдИ рд╕рдВрдкрддреНрддрд┐ рд╡рд╕реНрддреБ рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рд╕рдВрдЧреНрд░рд╣ рдЬреИрд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд╕реМрд╡рд╛рдВ рдЪрд╛рдмрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рддреЛ рджреГрд╢реНрдп рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдмреБрд░реА рддрд░рд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ 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), рджреЗрд╢реА рдИрдПрд╕рдПрдо рдЖрдпрд╛рдд, рдмреЗрд╣рддрд░ рдПрд╕рд┐рдВрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди, 'рд╡реА-рдлреЙрд░' рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧреАред"

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓реА?

Set рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╣реЗрдХ Vue рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реАред :рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛:

рдореЗрд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реЛрдбрдореИрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рдереЗ, рдЗрд╡рд╛рди рдпреВ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдк рдФрд░ рд╕реЗрдЯ рд╕рдорд░реНрдерди 2.6 рдореЗрдВ рдЖрдиреЗ рдХреА "рд╕рдВрднрд╛рд╡рдирд╛" рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдордИ рдореЗрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдкрддрд╛ рд╣реИред

@ yyx990803 рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкрд░ рдкреНрд░рдЧрддрд┐ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд╣рд╛рдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдореБрджреНрджрд╛ рдХрд╣реАрдВ рд╣реИ?

рдмрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рдФрд░ рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдЖрдк рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд░рдгреА рдХреЛ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд▓рд╛рдЧреВ рд╕рднреА рд╕рдорд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк _ рдпрд╛ рд▓реЙрд╢ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рджреБрдЦрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдЯреАрдо рдЗрд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреА, рддрдм рддрдХ рд╣рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ

рдмрд╕ рдЗрд╕рдореЗрдВ рдЭрдВрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗ, рдлрд┐рд░ рдкреНрд░рдердо-рдкрдХреНрд╖ рд╕рдорд░реНрдерди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдпрд╣ vue.js v3.0 рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИред
рддреБрд▓рдирд╛ рдХрд░реЗрдВ: https://medium.com/the-vue-point/plans-for-the-next-iteration-of-vue-js-777ffea6fabf

рдХреНрдпрд╛ рдпрд╣ рдЕрдм Vue3 рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИ (рдЕрд░реНрдерд╛рдд, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ Map рдФрд░ Set )?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

lmnsg picture lmnsg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paulpflug picture paulpflug  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

finico picture finico  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

6pm picture 6pm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aviggngyv picture aviggngyv  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ