Vue: 2.0 рдкрд░рд┐рд╡рд░реНрддрди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдордИ 2016  ┬╖  210рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

рдпрд╣ рдПрдХ рдЬреАрд╡рдВрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред рдЕрдВрддрд┐рдо рдЕрджреНрдпрддрди: 08/17/2016 2.0.0-рдЖрд░рд╕реА.2 рдХреЗ рдЕрдиреБрд╕рд╛рд░

рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдЯреНрд╕

  • рдПрдХ рдЪреЗрдХ рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ 2.0 рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред
  • рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ рд▓рд┐рд╕реНрдЯ рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред
  • рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдЕрдкрдЧреНрд░реЗрдб рдЯрд┐рдкреНрд╕ рд╣реИрдВ ред

    рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди

  • рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╛рд░реНрд╕рд░ рдЕрдм DOM рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ ( <script type="text/x-template"> , рдЗрдирд▓рд╛рдЗрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдпрд╛ рд╕рд┐рдВрдЧрд▓-рдлрд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХрд▓рд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред ), рдЕрдм рдЖрдк 1.x рдореЗрдВ рдХрд┐рд╕реА рднреА el рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рддреЛ рдЖрдк рдЕрднреА рднреА рдЙрди рд╕реАрдорд╛рдУрдВ рдХреЗ рдЕрдзреАрди рд╣реЛрдВрдЧреЗред

  • рдХрдВрдкрд╛рдЗрд▓рд░ (рд╡рд╣ рднрд╛рдЧ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ) рдФрд░ рд░рдирдЯрд╛рдЗрдо рдХреЛ рдЕрдм рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рд╣реЛрдВрдЧреЗ:

    • рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрд┐рд▓реНрдб: рдЗрд╕рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд░рдирдЯрд╛рдЗрдо рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ Vue 1.x рдХрд░рддрд╛ рд╣реИред
    • рд░рдирдЯрд╛рдЗрдо рдУрдирд▓реА рдмрд┐рд▓реНрдб: рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрдкрд╛рдЗрд▓ рд╕реНрдЯреЗрдк рдореЗрдВ рдпрд╛ рддреЛ рдкреНрд░реА-рдХрдВрдкрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реЗрдВрдбрд░ рдлрдВрдХреНрд╢рди рд▓рд┐рдЦреЗред npm рдкреИрдХреЗрдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд┐рд▓реНрдб рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ npm рд╕реЗ Vue рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕рдВрдХрд▓рди рдЪрд░рдг (рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝ рдпрд╛ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди vueify рдпрд╛ vue-loader рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рдиред

      рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕

  • [x] Vue.config.silent

  • [x] Vue.config.optionMergeStrategies
  • [x] Vue.config.devtools
  • [x] Vue.config.errorHandler new - рдХрдВрдкреЛрдиреЗрдВрдЯ рд░реЗрдВрдбрд░ рдФрд░ рд╡реЙрдЪрд░реНрд╕ рдХреЗ рджреМрд░рд╛рди рдЕрдирдХрд╣реА рдПрд░рд░
  • [x] Vue.config.keyCodes new - v-on рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХреБрдВрдЬреА рдЙрдкрдирд╛рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
  • Vue.config.debug рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЕрдм рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИрдВ
  • Vue.config.async рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП async рдЖрд╡рд╢реНрдпрдХ рд╣реИ
  • Vue.config.delimiters рдиреЗ рдПрдХ рдШрдЯрдХ-рд╕реНрддрд░ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛
  • Vue.config.unsafeDelimiters рдкрджрд╛рд╡рдирдд, v-html рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

    рд╡реИрд╢реНрд╡рд┐рдХ рдПрдкреАрдЖрдИ

  • [x] Vue.extend

  • [x] Vue.nextTick
  • [x] Vue.set
  • [x] Vue.delete
  • [x] Vue.directive
  • [x] Vue.component
  • [x] Vue.use
  • [x] Vue.mixin
  • [x] Vue.compile рдирдпрд╛ (рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрд┐рд▓реНрдб рдореЗрдВ)
  • [x] Vue.рд╕рдВрдХреНрд░рдордг

    • рдЗрд╕рдХреЗ рдмрдЬрд╛рдп el рдкрд░ рдбреЗрдЯрд╛-рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реНрдЯреИрдЧрд░ рдмрд╣рд┐рд╖реНрдХреГрдд, рд╕реЗрдЯ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ

  • [x] Vue.filter
  • Vue.elementDirective рдмрд╣рд┐рд╖реНрдХреГрдд, рдмрд╕ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • Vue.partial рдкрджрд╛рд╡рдирдд, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

    рд╡рд┐рдХрд▓реНрдк

рдЖрдВрдХрдбрд╝реЗ
  • [рдПрдХреНрд╕] рдбреЗрдЯрд╛
  • [рдПрдХреНрд╕] рд╕рд╣рд╛рд░рд╛

    • [рдПрдХреНрд╕] рдкреНрд░реЛрдк рд╕рддреНрдпрд╛рдкрди

    • [x] рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди

    • рдЬрдмрд░рджрд╕реНрддреА рдмрд╣рд┐рд╖реНрдХреГрддред

    • рдкреНрд░реЛрдк рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЛрдб рдмрд╣рд┐рд╖реНрдХреГрдд (рд╡реА-рдореЙрдбрд▓ рдШрдЯрдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ)

  • [x] рдкреНрд░реЙрдкреНрд╕рдбреЗрдЯрд╛ рдирдпрд╛, рдХреЗрд╡рд▓ рдЗрдВрд╕реНрдЯреЗрдВрдЯреЗрд╢рди
  • [x] рдкрд░рд┐рдХрд▓рд┐рдд
  • [рдПрдХреНрд╕] рддрд░реАрдХреЗ
  • [рдПрдХреНрд╕] рдШрдбрд╝реА

    рдбреЛрдо
  • [рдПрдХреНрд╕] рдПрд▓

  • [рдПрдХреНрд╕] рдЯреЗрдореНрдкрд▓реЗрдЯ
  • [x] рдирдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ
  • рдкрджрд╛рд╡рдирдд рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ , рдШрдЯрдХреЛрдВ рдореЗрдВ рдЕрдм рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдореВрд▓ рддрддреНрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред

    рдЬреАрд╡рдирдЪрдХреНрд░ рд╣реБрдХ
  • [x] init beforeCreate

  • [рдПрдХреНрд╕] рдмрдирд╛рдпрд╛ рдЧрдпрд╛
  • [x] рдирд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
  • [рдПрдХреНрд╕] рдирд╖реНрдЯ
  • [x] рдкрд╣рд▓реЗ рдорд╛рдЙрдВрдЯ рдиреНрдпреВ
  • [рдПрдХреНрд╕] рдШреБрдбрд╝рд╕рд╡рд╛рд░ рдирдпрд╛
  • [x] рдкрд╣рд▓реЗрдЕрдкрдбреЗрдЯ рдирдпрд╛
  • [x] рдирдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
  • [x] рд╕рдХреНрд░рд┐рдп рдирдпрд╛ (рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП)
  • [x] рдирд┐рд╖реНрдХреНрд░рд┐рдп рдирдпрд╛ (рд░рдЦ-рд░рдЦрд╛рд╡ рдХреЗ рд▓рд┐рдП)
  • [x] рддреИрдпрд╛рд░ рдкрджрд╛рд╡рдирдд, рдорд╛рдЙрдВрдЯреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЕрдм рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ)
  • рдмрд╣рд┐рд╖реНрдХреГрдд рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ , рд╡реВ-рд░рд╛рдЙрдЯрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛
  • рдкрд╣рд▓реЗ рд╕рдВрдХрд▓рди рдмрд╣рд┐рд╖реНрдХреГрдд, рдирд┐рд░реНрдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рд╕рдВрдХрд▓рд┐рдд рдкрджрд╛рд╡рдирдд, рдорд╛рдЙрдВрдЯреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рд╕рдВрд▓рдЧреНрди рдмрд╣рд┐рд╖реНрдХреГрдд, рдЕрдиреНрдп рд╣реБрдХ рдореЗрдВ рдХрд╕реНрдЯрдо рдЗрди-рдбреЛрдо рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рдЕрд▓рдЧ рдкрджрд╛рд╡рдирдд, рдКрдкрд░ рдХреЗ рд╕рдорд╛рди

    рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ
  • [x] рдирд┐рд░реНрджреЗрд╢

  • [рдПрдХреНрд╕] рдШрдЯрдХ
  • [рдПрдХреНрд╕] рд╕рдВрдХреНрд░рдордг
  • [рдПрдХреНрд╕] рдлрд┐рд▓реНрдЯрд░
  • рдЖрдВрд╢рд┐рдХ рдкрджрд╛рд╡рдирдд
  • ElementDirectives рдкрджрд╛рд╡рдирдд

    рд╡рд┐рд╡рд┐рдз
  • [рдПрдХреНрд╕] рдорд╛рддрд╛-рдкрд┐рддрд╛

  • [рдПрдХреНрд╕] рдорд┐рдХреНрд╕рд┐рдиреНрд╕
  • [рдПрдХреНрд╕] рдирд╛рдо
  • [рдПрдХреНрд╕] рдлреИрд▓рддрд╛ рд╣реИ
  • [x] рд╕реАрдорд╛рдВрдХрдХ рдирдпрд╛, рдореВрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреА рдЬрдЧрд╣ред
  • [x] рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирдпрд╛, рдШрдЯрдХ рдХреЛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдФрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕-рд▓реЗрд╕ рдмрдирд╛рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдПрдХ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдиреЛрдбреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ)
  • рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдФрд░ рдШрдЯрдирд╛ рдкреНрд░рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ

    рдЙрджрд╛рд╣рд░рдг рдЧреБрдг

  • [рдПрдХреНрд╕] рд╡реАрдПрдоред $ рдбреЗрдЯрд╛

  • [x] рд╡реАрдПрдо.$el
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред$рд╡рд┐рдХрд▓реНрдк
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред $ рдорд╛рддрд╛-рдкрд┐рддрд╛
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред$рд░реВрдЯ
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред $ рдмрдЪреНрдЪреЗ
  • [x] рд╡реАрдПрдо.$refs
  • vm.$els рдкрджрд╛рд╡рдирдд, $refs . рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп

    рдЙрджрд╛рд╣рд░рдг рдХреЗ рддрд░реАрдХреЗ

рдЖрдВрдХрдбрд╝реЗ
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред$рдШрдбрд╝реА
  • vm.$ рдкрджрд╛рд╡рдирдд рд╣реЛ рдЬрд╛рдУ , рд╕реАрдзреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  • vm.$set рдкрджрд╛рд╡рдирдд, Vue.set рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • vm.$delete рдкрджрд╛рд╡рдирдд, Vue.delete . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • vm.$eval рдкрджрд╛рд╡рдирдд, рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ
  • vm.$interpolate рдкрджрд╛рд╡рдирдд, рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ
  • vm.$log рдкрджрд╛рд╡рдирдд, devtools рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

    рдЖрдпреЛрдЬрди
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред$рдСрди

  • [рдПрдХреНрд╕] рд╡реА рдПрдо.$рдПрдХ рдмрд╛рд░
  • [x] рд╡реАрдПрдо.$рдСрдл
  • [x] рд╡реАрдПрдо.$emit
  • vm.$dispatch рдкрджрд╛рд╡рдирдд, рд╡реИрд╢реНрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рдмрд╕ рдпрд╛ Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • vm.$рдкреНрд░рд╕рд╛рд░рдг рдмрд╣рд┐рд╖реНрдХреГрдд, рдКрдкрд░ рдХреЗ рд╕рдорд╛рди

    рдбреЛрдо
  • [x] рд╡реАрдПрдо.$рдЕрдЧрд▓рд╛ рдЯрд┐рдХ

  • vm.$append рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, vm.$el рдкрд░ рдмрд╕ рдореВрд▓ DOM API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рдкрджрд╛рд╡рдирдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ vm.$
  • vm.$ рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
  • vm.$рдирд┐рдХрд╛рд▓реЗрдВ рдкрджрд╛рд╡рдирдд

    рдЬреАрд╡рди рдЪрдХреНрд░
  • [рдПрдХреНрд╕] рд╡реАрдПрдоред $ рдорд╛рдЙрдВрдЯ

  • [рдПрдХреНрд╕] рд╡реАрдПрдоред$рдирд╖реНрдЯ

    рдирд┐рд░реНрджреЗрд╢реЛрдВ

  • [рдПрдХреНрд╕] рд╡реА-рдкрд╛рда

  • [x] рд╡реА-рдПрдЪрдЯреАрдПрдордПрд▓ рд▓реЗрдХрд┐рди {{{ }}} рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  • [рдПрдХреНрд╕] рд╡реА-рдЕрдЧрд░
  • [рдПрдХреНрд╕] рд╡реА-рд╢реЛ
  • [рдПрдХреНрд╕] рд╡реА-рдЕрдиреНрдп
  • [x] рд╡реА-рдлреЙрд░

    • [x] рдХреБрдВрдЬреА (рдЯреНрд░реИрдХ-рдмрд╛рдп рдХреА рдЬрдЧрд╣)

    • [x] рд╡рд╕реНрддреБ v-for

    • [рдПрдХреНрд╕] рд░реЗрдВрдЬ рд╡реА-рдХреЗ рд▓рд┐рдП

    • [x] рддрд░реНрдХ рдЖрджреЗрд╢ рдЕрджреНрдпрддрди: (value, index) in arr , (value, key, index) in obj

    • $index рдФрд░ $key рдкрджрд╛рд╡рдирдд

  • [рдПрдХреНрд╕] рд╡реА-рдСрди

    • [x] рд╕рдВрд╢реЛрдзрдХ

    • [x] рдмрд╛рд▓ рдШрдЯрдХ рдкрд░

    • [x] рдХрд╕реНрдЯрдо keycodes (рдЕрдм рддреЛ рдЙрдкрд▓рдмреНрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Vue.config.keyCodes рдХреЗ рдмрдЬрд╛рдп Vue.directive('on').keyCodes )

  • [рдПрдХреНрд╕] рд╡реА-рдмрд╛рдЗрдВрдб

    • [рдПрдХреНрд╕] рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ

    • [рдПрдХреНрд╕] рдПрдХреНрд╕рд▓рд┐рдВрдХ

    • [x] рдмрд╛рдЗрдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ

  • [рдПрдХреНрд╕] рд╡реА- рдмрд╛рдЗрдВрдб: рд╕реНрдЯрд╛рдЗрд▓

    • [x] рдЙрдкрд╕рд░реНрдЧ рд╕реВрдБрдШрдирд╛

  • [рдПрдХреНрд╕] рд╡реА- рдмрд╛рдЗрдВрдб: рдХреНрд▓рд╛рд╕
  • [рдПрдХреНрд╕] рд╡реА-рдореЙрдбрд▓

    • [x] рдЖрд▓рд╕реА (рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ)

    • [x] рд╕рдВрдЦреНрдпрд╛ (рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ)

    • [x] рд░рдЪрдирд╛ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛

    • debounce рдкрджрд╛рд╡рдирдд, v-on:input + рддреГрддреАрдп рдкрдХреНрд╖ debounce рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

  • [рдПрдХреНрд╕] рд╡реА-рдХреНрд▓реЛрдХ
  • [рдПрдХреНрд╕] рд╡реА-рдкреНрд░реА
  • [рдПрдХреНрд╕] рд╡реА-рдПрдХ рдмрд╛рд░ рдирдпрд╛
  • v-ref рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреИрд╕реЗ ref
  • v-el рдкрджрд╛рд╡рдирдд (рд░реЗрдлрд░реА рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп)

    рд╡рд┐рд╢реЗрд╖ рдШрдЯрдХ

  • [рдПрдХреНрд╕] <component>

    • [x] :is
    • [x] рдПрд╕рд┐рдВрдХреНрд╕ рдШрдЯрдХ
    • [x] рдЗрдирд▓рд╛рдЗрди-рдЯреЗрдореНрдкрд▓реЗрдЯ
  • [рдПрдХреНрд╕] <transition>
  • [рдПрдХреНрд╕] <transition-group>
  • [рдПрдХреНрд╕] <keep-alive>
  • [рдПрдХреНрд╕] <slot>
  • рдЖрдВрд╢рд┐рдХ рдмрд╣рд┐рд╖реНрдХреГрдд

    рд╡рд┐рд╢реЗрд╖ рдЧреБрдг

  • [рдПрдХреНрд╕] рдХреБрдВрдЬреА

  • [рдПрдХреНрд╕] рд░реЗрдлрд░реА
  • [рдПрдХреНрд╕] рд╕реНрд▓реЙрдЯ

    рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ

  • [рдПрдХреНрд╕] рд░реЗрдВрдбрд░рдЯреЙрд╕реНрдЯреНрд░рд┐рдВрдЧ

  • [x] рд░реЗрдВрдбрд░ рдЯреВрд╕реНрдЯреНрд░реАрдо
  • [x] рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╣рд╛рдЗрдбреНрд░реЗрд╢рди

    рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди

v-for рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди

  • $index рдФрд░ $key

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

  • рдирдИ рд╕рд░рдгреА рд╕рд┐рдВрдЯреИрдХреНрд╕

    • value in arr

    • (value, index) in arr (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ forEach рдФрд░ map рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рд╕реНрд╡рд┐рдЪ рдХреНрд░рдо)

  • рдирдИ рд╡рд╕реНрддреБ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕

    • value in obj

    • (value, key) in obj (рддрд░реНрдХреЛрдВ рдХрд╛ рд╕реНрд╡рд┐рдЪ рдХреНрд░рдо, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рд▓реЙрд╢)

    • (value, key, index) in obj (рд╕реВрдЪрдХрд╛рдВрдХ рдЕрдм рджреГрд╢реНрдп рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдЯреЗрдмрд▓ рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ)

      рдирд┐рд░реНрджреЗрд╢ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, 2.0 рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рджрд╛рдпрд░рд╛ рдмрд╣реБрдд рдХрдо рд╣реЛрддрд╛ рд╣реИ: рдЕрдм рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░рддреНрдпрдХреНрд╖ DOM рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдореБрдЦреНрдп рдХреЛрдб-рдкреБрди: рдЙрдкрдпреЛрдЧ рдЕрдореВрд░реНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрдм рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рд╣реБрдХ рдХреЗ рдЕрдВрджрд░ this рд╣реИ рдФрд░ bind , update рдФрд░ unbind рдЕрдм рд╕рдм рдХреБрдЫ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ binding рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, binding.value рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛, рдФрд░ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдЧреБрдг рдХрд╛рдпрдо рдирд╣реАрдВ рд░рд╣реЗрдВрдЧреЗред рдЖрдк el рдкрд░ рдирд┐рд░реНрджреЗрд╢ рд╕реНрдерд┐рддрд┐ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

<div v-example:arg.modifier="a.b"></div>
// example directive
export default {
  bind (el, binding, vnode) {
    // the binding object exposes value, oldValue, expression, arg and modifiers.
    binding.expression // "a.b"
    binding.arg // "arg"
    binding.modifiers // { modifier: true }
    // the context Vue instance can be accessed as vnode.context.
  },

  // update has a few changes, see below
  update (el, binding, vnode, oldVnode) { ... },

  // componentUpdated is a new hook that is called AFTER the entire component
  // has completed the current update cycle. This means all the DOM would
  // be in updated state when this hook is called. Also, this hook is always
  // called regardless of whether this directive's value has changed or not.
  componentUpdated (el, binding, vnode, oldVNode) { ... },

  unbind (el, binding, vnode) { ... }
}

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдореВрд▓реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

export default {
  bind (el, { value }) {
    // ...
  }
}

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, update рд╣реБрдХ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реИрдВ:

  1. bind рдмрд╛рдж рдЗрд╕реЗ рдЕрдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдпрд╣ рдЕрдм рд╣рдореЗрд╢рд╛ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдореВрд▓реНрдп рдмрджрд▓ рдЧрдпрд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВред рдЖрдк рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП binding.value === binding.oldValue рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЗ рднреА рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдбреЗрдЯ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдирд┐рд░реНрджреЗрд╢ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

elementDirective , рдирд┐рд░реНрджреЗрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рд╡рд┐рдХрд▓реНрдк рдЬреИрд╕реЗ acceptStatement , deep рдЖрджрд┐ рд╕рднреА рдкрджрд╛рд╡рдирдд рд╣реИрдВред

рдлрд╝рд┐рд▓реНрдЯрд░ рдЙрдкрдпреЛрдЧ рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди

Vue 2.0 рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рд╣реИрдВ:

  1. рдлрд╝рд┐рд▓реНрдЯрд░ рдЕрдм рдХреЗрд╡рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди ( {{}} рдЯреИрдЧ) рдХреЗ рдЕрдВрджрд░ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрддреАрдд рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рдпрд╛ рд╣реИ v-model , v-on рдЖрджрд┐ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ, рдФрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ v-for рдпрд╣ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЙрд╕ рддрд░реНрдХ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рдХрд▓рд┐рдд рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  2. Vue 2.0 рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рд╣реИ moment.js рддрд┐рдерд┐рдпрд╛рдБ рдФрд░ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП accounting.js рд╡рд┐рддреНрддреАрдп рдореБрджреНрд░рд╛рдУрдВ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдкреИрдХ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
  3. рд╕реНрдкреЗрд╕-рд╕реАрдорд╛рдВрдХрд┐рдд рддрд░реНрдХ рд▓реЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдЖрдордВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЗрдирд▓рд╛рдЗрди рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

{{ date | formatDate('YY-MM-DD') }}

рд╕рдВрдХреНрд░рдордг рдкреНрд░рдгрд╛рд▓реА

рд╕рдВрдХреНрд░рдордг рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧ рдкрд░рд┐рд╡рд░реНрддрди:

рд╣рдореЗрд╢рд╛ рдЪрд╛рд▓реВ v-transition рд╡рд░реНрдЧ рдЕрдм рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ Vue рдЕрдм рдЙрдиреНрд╣реАрдВ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ Angular рдФрд░ React CSSTransitionGroup рдХрд░рддрд╛ рд╣реИ:

  • v-enter : рддрддреНрд╡ рдбрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, 1 рдЯрд┐рдХ рдХреЗ рдмрд╛рдж рд╣рдЯрд╛ рджреЗрдВред (рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛)
  • v-enter-active : рддрддреНрд╡ рдбрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╕рдВрдХреНрд░рдордг/рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред (рд╕рдХреНрд░рд┐рдп + рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)
  • v-leave : рдЫреБрдЯреНрдЯреА рд╕рдВрдХреНрд░рдордг рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд╕рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, 1 рдЯрд┐рдХ рдХреЗ рдмрд╛рдж рд╣рдЯрд╛ рджреЗрдВ (рдЫреБрдЯреНрдЯреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐)
  • v-leave-active : рдЫреБрдЯреНрдЯреА рд╕рдВрдХреНрд░рдордг рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдареАрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╕рдВрдХреНрд░рдордг/рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред (рд╕рдХреНрд░рд┐рдп + рдЫреБрдЯреНрдЯреА рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐)

v-enter-active рдФрд░ v-leave-active рдЖрдкрдХреЛ рдПрдВрдЯрд░/рд▓реАрд╡ рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдИрдЬрд┐рдВрдЧ рдХрд░реНрд╡реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди v-leave рдХреЛ v-leave-active рдмрджрд▓рдирд╛ рд╣реИред (рд╕реАрдПрд╕рдПрд╕ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП, v-enter-active + v-leave-active )

рд╕рдВрдХреНрд░рдордг рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди

  • <transition> рдШрдЯрдХ

    рд╕рднреА рдПрдХрд▓-рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдкреНрд░рднрд╛рд╡ рдЕрдм рд▓рдХреНрд╖рд┐рдд рддрддреНрд╡/рдШрдЯрдХ рдХреЛ <transition> рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдШрдЯрдХ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕рд╛рд░ рдШрдЯрдХ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд DOM рддрддреНрд╡ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рди рд╣реА рдпрд╣ рдирд┐рд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрджрд░ рд▓рд┐рдкрдЯреЗ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

    рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:

    <transition>
    <div v-if="ok">toggled content</div>
    </transition>
    

    рдШрдЯрдХ рдХрдИ рдкреНрд░реЙрдкреНрд╕ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрдХреНрд░рдордг рдкрд░рд┐рднрд╛рд╖рд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ:

    рд░рдВрдЧрдордВрдЪ рдХреА рд╕рд╛рдордЧреНрд░реА

    • рдирд╛рдо: рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХреНрд░рдордг CSS рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП name: 'fade' рдХрд╛ рд╕реНрд╡рддрдГ рд╡рд┐рд╕реНрддрд╛рд░ .fade-enter , .fade-enter-active , рдЖрджрд┐ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "v" ред

    • рдкреНрд░рдХрдЯ: рдмреВрд▓рд┐рдпрди

    рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдВрдбрд░ рдкрд░ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ false ред

    • рд╕реАрдПрд╕рдПрд╕: рдмреВрд▓рд┐рдпрди

    CSS рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдХреНрд▓рд╛рд╕реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ true ред рдпрджрд┐ false рд╕реЗрдЯ рд╣реИ, рддреЛ рдШрдЯрдХ рдИрд╡реЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХреЗрд╡рд▓ JavaScript рд╣реБрдХ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред

    • рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдИрд╡реЗрдВрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЙрдкрд▓рдмреНрдз рдорд╛рди "transition" рдФрд░ "animation" ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдЧрд╛ рдЬрд┐рд╕рдХреА рдЕрд╡рдзрд┐ рд▓рдВрдмреА рд╣реИред

    • рдореЛрдб: рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ/рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдХреНрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдкрд▓рдмреНрдз рдореЛрдб "out-in" рдФрд░ "in-out" ; рдПрдХ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯред

    • рдПрдВрдЯрд░ рдХреНрд▓рд╛рд╕, рд▓реАрд╡рдХреНрд▓рд╛рд╕, рдПрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХреНрд▓рд╛рд╕, рд▓реАрд╡рдПрдХреНрдЯрд┐рд╡ рдХреНрд▓рд╛рд╕, рдкреНрд░рдХрдЯ рдХреНрд▓рд╛рд╕, рдкреНрд░рдХрдЯ рдПрдХреНрдЯрд┐рд╡ рдХреНрд▓рд╛рд╕: рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рд╕рдВрдХреНрд░рдордг рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

    рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:

    <transition name="fade" mode="out-in" appear>
    <component :is="view"></component>
    </transition>
    

    рдЖрдпреЛрдЬрди

    1.x рдПрдкреАрдЖрдИ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реБрдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред

    • рдкрд╣рд▓реЗ-рдкреНрд░рд╡реЗрд╢
    • рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛
    • рдЖрдлреНрдЯрд░-рдПрдВрдЯрд░
    • рдЫреБрдЯреНрдЯреА рд╕реЗ рдкрд╣рд▓реЗ
    • рдЫреЛрдбрд╝рдирд╛
    • рдЫреБрдЯреНрдЯреА рдХреЗ рдмрд╛рдж
    • рдкрд╣рд▓реЗ рдкреНрд░рдХрдЯ рд╣реЛрдирд╛
    • рдХреЗ рдЬреИрд╕рд╛ рд▓рдЧрдирд╛
    • рдмрд╛рдж рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрдирд╛

    рдЙрджрд╛рд╣рд░рдг:

    <transition @after-enter="transitionComplete">
    <div v-show="ok">toggled content</div>
    </transition>
    

    рдЬрдм рдкреНрд░рд╡реЗрд╢ рд╕рдВрдХреНрд░рдордг рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдХ рдХреА transitionComplete рд╡рд┐рдзрд┐ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд DOM рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

    рдХреБрдЫ рдиреЛрдЯ:

    • leave-cancelled рдбрд╛рд▓рдиреЗ/рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдПрдХ рдмрд╛рд░ рдЫреБрдЯреНрдЯреА рд╕рдВрдХреНрд░рдордг рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрднреА рднреА v-show рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред
    • 1.0 рдХреЗ рд╕рдорд╛рди, enter рдФрд░ leave рд╣реБрдХ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ cb рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЕрдВрддрд┐рдо рд╕рдордп рдкрд░ рд╕реНрдкрд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдг рдЪрд╛рд╣рддрд╛ рд╣реИред
  • <transition-group> рдШрдЯрдХ

    рд╕рднреА рдмрд╣реБ-рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдкреНрд░рднрд╛рд╡ рдЕрдм рддрддреНрд╡реЛрдВ рдХреЛ <transition-group> рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдШрдЯрдХ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЙрд╕реА рдкреНрд░реЙрдкреНрд╕ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ <transition> рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐:

    1. <transition> рд╡рд┐рдкрд░реАрдд, <transition-group> рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ <span> , рдФрд░ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ tag рдкреНрд░реЛрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреМрди рд╕рд╛ рддрддреНрд╡ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ is рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ <ul is="transition-group"> ред
    2. <transition-group> mode рдкреНрд░реЛрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
    3. <transition-group> рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк

    рдЙрджрд╛рд╣рд░рдг:

    <transition-group tag="ul" name="slide">
    <li v-for="item in items" :key="item.id">
      {{ item.text }}
    </li>
    </transition-group>
    

    рдореВрд╡рд┐рдВрдЧ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди

    <transition-group> CSS рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рдЬрд░рд┐рдП рдореВрд╡рд┐рдВрдЧ рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░реАрди рдкрд░ рдмрдЪреНрдЪреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рдореВрд╡рд┐рдВрдЧ рд╕реАрдПрд╕рдПрд╕ рдХреНрд▓рд╛рд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ( name рдкреНрд░реЛрдк рд╕реЗ рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рдпрд╛ moveClass рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рдпрджрд┐ рдЪрд▓рддреА рд╡рд░реНрдЧ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ CSS transform рд╕рдВрдкрддреНрддрд┐ "рд╕рдВрдХреНрд░рдордг-рд╕рдХреНрд╖рдо" рд╣реИ, рддреЛ FLIP рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрддреНрд╡ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдЧрдВрддрд╡реНрдп рдХреЗ рд▓рд┐рдП рдПрдирд┐рдореЗрдЯреЗрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

    рдпрд╣рд╛рдВ рдПрдХ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рджреЗрдЦреЗрдВред

  • рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╕рдВрдХреНрд░рдордг рдмрдирд╛рдирд╛

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

    Vue.component('fade', {
    functional: true,
    render (createElement, { children }) {
      const data = {
        props: {
          name: 'fade'
        },
        on: {
          beforeEnter () { /* ... */ }, // <-- Note hooks use camelCase in JavaScript (same as 1.x)
          afterEnter () { /* ... */ }
        }
      }
      return createElement('transition', data, children)
    }
    })
    

    рдлрд┐рд░ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    <fade>
    <div v-if="ok">toggled content</div>
    </fade>
    

    рд╡реА-рдореЙрдбрд▓ рдкрд░рд┐рд╡рд░реНрддрди

  • lazy рдФрд░ number рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдм рд╕рдВрд╢реЛрдзрдХ рд╣реИрдВ:

    <input v-model.lazy="text">
    
  • рдирдпрд╛ рд╕рдВрд╢реЛрдзрдХ: .trim - рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЗрдирдкреБрдЯ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рддрд╛ рд╣реИред
  • debounce рдкрд░рдо рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред (рдиреАрдЪреЗ рдЕрдкрдЧреНрд░реЗрдб рдЯрд┐рдк рджреЗрдЦреЗрдВ)
  • v-model рдЕрдм рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЗрдирд▓рд╛рдЗрди value рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рддреНрдп рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2 рдХреЗ рдмрдЬрд╛рдп 1 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛:

    data: {
    val: 1
    }
    
    <input v-model="val" value="2">
    

    рд╡рд╣реА рдореМрдЬреВрджрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде <textarea> рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп:

    <textarea v-model="val">hello world</textarea>
    

    рдХрд░:

    data () {
    return {
      val: 'hello world'
    }
    }
    
    <textarea v-model="val"></textarea>
    

    рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдкрдХреНрд╖ рдХреЛ рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрдд рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЖрдкрдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛред

  • v-model рдПрдХ v-for рдкреБрдирд░рд╛рд╡реГрддреНрдд рдЖрджрд┐рдо рдорд╛рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

    <input v-for="str in strings" v-model="str">
    

    рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

    strings.map(function (str) {
    return createElement('input', ...)
    })
    

    рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, str рдХреЛ iterator рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреЛрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ v-model рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗ:

    <input v-for="obj in objects" v-model="obj.str">
    

    рд╕рд╣рд╛рд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░

  • .once рдФрд░ .sync рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реИрдВред рдкреНрд░реЙрдкреНрд╕ рдЕрдм рд╣рдореЗрд╢рд╛ рд╡рди-рд╡реЗ рдбрд╛рдЙрди рд╣реЛрддреЗ рд╣реИрдВред рдкреИрд░реЗрдВрдЯ рд╕реНрдХреЛрдк рдореЗрдВ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡рд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛред

  • рдХрд┐рд╕реА рдкреНрд░реЛрдк рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рдЕрдм рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдк a рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдШрдЯрдХ рдореЗрдВ this.a = someOtherValue рд╕реЗрдЯ рдХрд░рдирд╛ред рдирдП рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЗ рдХрд╛рд░рдг, рдЬрдм рднреА рдкреИрд░реЗрдВрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЪрд╛рдЗрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдмрджрд▓рд╛рд╡ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, 2.0 рдореЗрдВ рдЖрдкрдХреЛ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рдкреНрд░реЙрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдпрд╛ рдХрдВрдкреНрдпреВрдЯреЗрдб рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

    рдЬрд┐рдВрджрд╛ рд░рд╣реЛ

keep-alive рдЕрдм рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ: рдпрд╣ рдЕрдм <transition> рд╕рдорд╛рди рдПрдХ рдЖрд╡рд░рдг рдШрдЯрдХ рд╣реИ:

  <keep-alive>
    <component :is="view"></component>
  </keep-alive>

рдпрд╣ рдХрдИ рд╕рд╢рд░реНрдд рдмрдЪреНрдЪреЛрдВ рдкрд░ keep-alive рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЕрдВрддрддрдГ рдПрдХ рд╣реА рдмрдЪреНрдЪреЗ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдмрдЪреНрдЪреЗ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛):

  <keep-alive>
    <comp-a v-if="a > 1"></comp-a>
    <comp-b v-else></comp-b>
  </keep-alive>

рдЬрдм <transition> рд╕рд╛рде рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдВрджрд░ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ:

  <transition>
    <keep-alive>
      <component :is="view"></component>
    </keep-alive>
  </transition>

рд╕реНрд▓реЙрдЯреНрд╕

  • рдЕрдм рд╕рдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде <slot> s рдХреА рдбреБрдкреНрд▓реАрдХреЗрдЯ рд░рдЦрдирд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЬрдм рдПрдХ рд╕реНрд▓реЙрдЯ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ "рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ" рдФрд░ рдЙрд╕реА рд░реЗрдВрдбрд░ рдЯреНрд░реА рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • <slot> рдирд╛рдо рд╕реЗ рдбрд╛рд▓реА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдЕрдм slot рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдореНрдорд┐рд▓рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред

    рд░реЗрдлрд░реА

  • v-ref рдЕрдм рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИ: рдпрд╣ рдЕрдм key рдФрд░ transition рд╕рдорд╛рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ:

    <!-- before -->
    <comp v-ref:foo></comp>
    
    <!-- after -->
    <comp ref="foo"></comp>
    

    рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реЗрдл рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЕрдм рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:

    <comp :ref="dynamicRef"></comp>
    
  • vm.$els рдФрд░ vm.$refs рдХрд╛ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд░реЗрдлрд░реА рдбреАрдУрдПрдо рддрддреНрд╡ рд╣реЛрдЧрд╛, рдФрд░ рдЬрдм рдХрд┐рд╕реА рдШрдЯрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд░реЗрдлрд░реА рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред
  • vm.$refs рдЕрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд░реЗрдВрдбрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╣реА рдкрдВрдЬреАрдХреГрдд/рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдбреБрдкреНрд▓реАрдХреЗрдЯ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

    рджреВрд╕рд░реА рдУрд░, $refs рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ $refs рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЬрд┐рдХреНрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

    рд╡рд┐рд╡рд┐рдз

  • track-by рдХреЛ key рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдм рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ: v-bind: рдпрд╛ : рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдк рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реНрдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    <!-- 1.x -->
    <div v-for="item in items" track-by="id">
    
    <!-- 2.0 -->
    <div v-for="item in items" :key="item.id">
    
  • рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЕрдВрджрд░ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реИрдВ:

    <!-- 1.x -->
    <div id="{{ id }}">
    
    <!-- 2.0 -->
    <div :id="id">
    
  • рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди: рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ null , undefined рдФрд░ false рдХреЛ рдорд┐рдереНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ 0 рдФрд░ рдЦрд╛рд▓реА рддрд╛рд░ рдпрдерд╛рд╡рдд рдкреНрд░рд╕реНрддреБрдд рд╣реЛрдВрдЧреЗред рдкреНрд░рдЧрдгрд┐рдд рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ :draggable="''" рдХреЛ draggable="true" рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

    рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдиреНрдпреВрдорд░реЗрдЯреЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдорд┐рдереНрдпрд╛ рдорд╛рдиреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдЧрд▓рдд" рдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рднреА attr = "false" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

  • рдЬрдм рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ v-on рдЕрдм рдХреЗрд╡рд▓ рдЙрд╕ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ $ рдХреЛ рд╕реБрдирддрд╛ рд╣реИред (рдЕрдм DOM рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рд╕реБрдирддрд╛)
  • v-else рдЕрдм v-show рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ - рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рд╡рди рдЯрд╛рдЗрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ( {{* foo }} ) рдмрд╣рд┐рд╖реНрдХреГрдд - рдЗрд╕рдХреЗ рдмрдЬрд╛рдп v-once рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • Array.prototype.$set/$reprecated рд╣рдЯрд╛ рджреЗрдВ (рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Vue.set рдпрд╛ Array.prototype.splice рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)
  • :style рдЕрдм рдЗрдирд▓рд╛рдЗрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ !important
  • рд░реВрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЕрдм рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдЗрд╕рдХреЗ рдмрдЬрд╛рдп propsData рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)
  • el рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм Vue.extend рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • Vue.set рдФрд░ Vue.delete Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЕрдм data рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд╕рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЧреБрдгреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред
  • рдЕрдм рдШрдЯрдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд░реВрдЯ $data рдХреЛ рдмрджрд▓рдирд╛ рднреА рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреБрдЫ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдШрдЯрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдзрд┐рдХ рдЕрдиреБрдорд╛рдирд┐рдд рдмрдирд╛рддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЯрд╛рдЗрдк-рдЪреЗрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде)ред
  • vm.$watch рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд░рд╖реНрдЯрд╛ рдЕрдм рд╕рдВрдмрджреНрдз рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдХреНрд░рд┐рдп рдХрд░ рджрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреНрдп рд░рд╛рдЬреНрдп рдХреЛ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдкреНрд░реЛрдк рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдПрдХ рдШрдЯрдХ рдкреНрд░реЛрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдШрдЯрдХ рдХреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

    рдШрдЯрдХ рдЕрджреНрдпрддрдиреЛрдВ рдХреЗ рдмрд╛рдж DOM рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЕрджреНрдпрддрди рдЬреАрд╡рдирдЪрдХреНрд░ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

    рдЕрдкрдЧреНрд░реЗрдб рдЯрд┐рдкреНрд╕

$dispatch рдФрд░ $broadcast рдХреЗ рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?

рдЬрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рд╣рдо $dispatch рдФрд░ $broadcast рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдШрдЯрдирд╛ рдкреНрд░рд╡рд╛рд╣ рдЬреЛ рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рддрд░реНрдХ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдкреЗрдбрд╝ рдХрдм рдмрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ: рдпрд╣ рдирд╣реАрдВ рд╣реИ рдмрдбрд╝реЗ рдРрдкреНрд╕ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рджрд░реНрдж рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдЕрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред $dispatch рдФрд░ $broadcast рднреА рд╕рд╣реЛрджрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк Node.js рдореЗрдВ EventEmitter рдХреЗ рд╕рдорд╛рди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдИрд╡реЗрдВрдЯ рд╣рдм рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡реЗ рдШрдЯрдХ рдЯреНрд░реА рдореЗрдВ рдХрд╣реАрдВ рднреА рд╣реЛрдВред рдХреНрдпреЛрдВрдХрд┐ Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЗрд╡реЗрдВрдЯ рдПрдорд┐рдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var bus = new Vue()
// in component A's method
bus.$emit('id-selected', 1)
// in component B's created hook
bus.$on('id-selected', this.someMethod)

рдФрд░ рдИрд╡реЗрдВрдЯ рдХреЛ рдЕрдирдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $off рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред

// in component B's destroyed hook
bus.$off('id-selected', this.someMethod)

рдпрд╣ рдкреИрдЯрд░реНрди рд╕рд░рд▓ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ $dispatch рдФрд░ $broadcast рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдкрд░рдд рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдРрд░реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдмрд╣рд┐рд╖реНрдХрд░рдг рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?

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

рдпрд╣ рдЪрд░реНрдЪрд╛ рд╕реВрддреНрд░ рднреА рджреЗрдЦреЗрдВред

debounce рд▓рд┐рдП v-model debounce рдХреЗ рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рддрдиреА рдмрд╛рд░ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдЕрдиреНрдп рдорд╣рдВрдЧреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред Vue рдХреЗ debounce рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ v-model рдЖрд╕рд╛рди рдЗрд╕ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА debounces _state updates_ рдмрд▓реНрдХрд┐ рдорд╣рдВрдЧрд╛ рд╕рдВрдЪрд╛рд▓рди рдЦреБрдж рдХреЛ, рдЬреЛ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред

рдЦреЛрдЬ рд╕рдВрдХреЗрддрдХ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдпреЗ рд╕реАрдорд╛рдПрдБ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред debounce рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЦреЛрдЬ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЧрдВрджреЗ рдЗрдирдкреБрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрдирдкреБрдЯ рдХреА рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛ рджреЗрдВрдЧреЗред Vue рд╕реЗ debounce function рдХреЛ decoupling рдХрд░рдХреЗ, рд╣рдо _only_ рдЙрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ debounce рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХрдИ рдмрд╛рд░ рдРрд╕рд╛ рднреА рд╣реЛрдЧрд╛ рдЬрдм рдбрд┐рдмрдЧрд┐рдВрдЧ _quite_ рд╕рд╣реА рд░реИрдкрд░ рдлрдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЦреЛрдЬ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдмрдВрдж рдХрд░рдиреЗ рддрдХ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдПрдХ рдЖрджрд░реНрд╢ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдк рд╢рд╛рдпрдж рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИ ред рдЕрдм рдЪреВрдВрдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА debounce рд▓рд┐рдП рд▓реЙрд╢ рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп throttle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ!

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

@chrisvfritz @Uninen рд╕реБрдзрд╛рд░: Vuex 2.0 рднреА Vue 1.x рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

vue-router рдХрд╛ рдЕрдЧрд▓рд╛ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ Vue 2.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред

рд╕рднреА 210 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрд┐рд▓реНрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреАред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдФрд░ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реИрдВ?

@rekateka 2.0 рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрд┐рд▓реНрдб рдХрд╛ рдорддрд▓рдм рд╣реИ (рдХрдВрдкрд╛рдЗрд▓рд░ + рд░рдирдЯрд╛рдЗрдо)ред NPM рдкреИрдХреЗрдЬ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ NPM рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрднрд╡рддрдГ рдПрдХ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдзрдиреНрдпрд╡рд╛рдж, @yyx990803ред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕рдВрдХрд▓рдХ рдФрд░ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдордВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЙрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдХреЛрдИ рдЪрд┐рдВрддрд╛рдЬрдирдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рдорд╣рд╛рди рдХрд╛рдо! рд▓рдЧреЗ рд░рд╣реЛ рдпрд╛рд░ред рдЖрдк рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ this.arg рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ vnode.data.directives рдореЗрдВ arg , рд▓реЗрдХрд┐рди рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рддреЛ рдореИрдВ index рдХреЛ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддрд╛ред

<!-- show @ 0, img @ 1-->
<img v-show="true" v-img:200*200="imgSrc">
<!-- img @ 0, show @ 1-->
<img v-img:200*200="imgSrc" v-show="true">

рдХреНрдпрд╛ рдореБрдЭреЗ forEach рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

@banricho рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ, рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдЕрджреНрдпрддрди рдирд┐рд░реНрджреЗрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рджреЗрдЦреЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдпрд╣рд╛рдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЗрд╕ рддрд░рд╣ рдбрд┐рдЬрд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

<carousel>
  <img src="..." alt="..." desc="..." is="argument">
  <img src="..." alt="..." desc="..." is="argument">
</carousel>

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рди рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реАрдорд┐рдд
рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдШрдЯрдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ

<carousel items="[{}, {}, {}]"></carousel>

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

@andyyou - рд╡рд╣ рдкреНрд░рд╢реНрди рд╢рд╛рдпрдж рдордВрдЪ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рди рд╣реА рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕реБрдЭрд╛рд╡ рд╣реИ, рди рд╣реА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорджрдж рд╣реИред

http://forum.vuejs.org/

рдпрджрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдлреЛрд░рдо рдереНрд░реЗрдб рдореЗрдВ Vue рдХреЗ рд╕рд╛рде рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдХреЙрдЯ

@smolinari рдзрдиреНрдпрд╡рд╛рдж

"рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдкрд░рдд рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред" рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдШрдЯрдирд╛рдУрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджреЗрдЦрддрд╛ рд╣реВрдВ - рдПрдХ рдШрдЯрдирд╛ рд╕рдордп рдореЗрдВ рдПрдХ рдХреНрд╖рдг рд╣реИ, рдЬрдмрдХрд┐ рд░рд╛рдЬреНрдп рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд░рд╛рдЬреНрдп рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖рдг рдХреЛ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрднреА рднреА рдХреБрдЫ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреЗ рдкреАрдЫреЗ рдХреЗ рдЕрд░реНрде рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

@jrenton рдЖрдо рддреМрд░ рдкрд░, рд╣рдо рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХреЗрд╡рд▓ рдШрдЯрдХ рдП рдХреЗ рд░реВрдк рдореЗрдВ рдШрдЯрдХ рдмреА рдХреЛ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдП рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреА рдХреЛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рддреЛ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдП рдФрд░ рдмреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЭрд╛ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рдмрдВрдзрди) рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдП рдХреЛ рдмреА рдХреЛ рд░рд╛рдЬреНрдп рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдПред
рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ 'рдЗрд╡реЗрдВрдЯ рдмрд╕' рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@jrenton рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕реВрдк рдХреЗ рдмрдЬрд╛рдп

рдореИрдВ Vue рдХреЗ рд╕рд╛рде рдЯрд╣рдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдЕрдм рддрдХ (vue 1.0) рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

<my-component data="{{ DATA }}"><my-component>

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ {{ рдФрд░ }} рдЯрд╣рдиреА рдЯреИрдЧ рд╣реИрдВ - vue рдХреЗ рд▓рд┐рдП рдореИрдВ рдХрд╕реНрдЯрдо рд╕реАрдорд╛рдВрдХрдХ ${ рдФрд░ } рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)

рдЕрдЧрд░ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ Vue 2.0 рдореЗрдВ рдореБрдЭреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

<my-component :data=" '{{ DATA }}' "></my-component>
рдЕрдзрд┐рдХрд╛рд░?

@gholol рдирд╣реАрдВ, рдпрд╣ рдмрд╕ рд╣реИ

<my-component :data="{{ DATA }}"></my-component>

рдЕрд╕рд▓ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреБрд░рд╛рдирд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЪреНрдЫрд╛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ ...

рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд╣рд╛, рдбреЗрдЯрд╛ рдЯреНрд╡рд┐рдЧ рдЯреЗрдВрдкрд▓реЗрдЯрд┐рдВрдЧ рдЗрдВрдЬрди рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВред рдЕрдм Vue 2.0 рдореЗрдВ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред рдореИрдВ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдЖрдкрдиреЗ рдХрд╣рд╛ (рдПрдХрд▓ рдПрд╕реНрдЯреНрд░реЛрдлрд╝реЗрд╕ рдХреЗ рдмрд┐рдирд╛) рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рд╕рдВрдкрддреНрддрд┐ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред

рддреНрд░реБрдЯрд┐: рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐: рдЕрдиреБрдкрд▓рдмреНрдз } рд╕рдВрдкрддреНрддрд┐ рд╕реВрдЪреА рдХреЗ рдмрд╛рдж

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдбреЗрдЯрд╛ рдЪрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ

@jrenton рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Vue рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдореЗрдВ template рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

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

@ yyx990803 рдЖрдЬ рд░реЛрдорд╛рдВрдЪ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ 1.0 рд╕реЗ 2.0a рддрдХ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЪреВрдВрдХрд┐ рдЕрдм рд╕рд░рд▓ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдЙрдВрдЧрд╛ рдФрд░ <input type="text" name="account[categories][{{ category.id }}]"> рдореЗрдВ рдХреБрдЫ рд╕рд░рд▓ рдХреИрд╕реЗ рдХрд░реВрдВ? 2.0?

ES6 рдЗрдирд▓рд╛рдЗрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрд╛рдзреНрдпрдХрд╛рд░реА рднрд╛рд╡реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:

<input type="text" :name="`account[categories][${ category.id }]`">

https://jsfiddle.net/Linusborg/cm4v75xh/

рдпрджрд┐ 2.0 рдкрд░ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдХрд╣рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдВрджрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ 1.0 рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрджрдд рд╣реЛ рдЧрдИ рд╣реИ - рд╣рд╛рдБ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл ES2015 рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдмрджрд╕реВрд░рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

@oskarkrawczyk рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдбреЛрдо рдореЗрдВ name="account[categories][fruits]" рдЬреИрд╕реЗ рдХреБрдЫ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧреАред

2.0 рд╕рдВрд╕реНрдХрд░рдг (рдФрд░ рдЙрдЪрд┐рдд 1.0, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ) :name=" 'account[categories][' + category.id + ']' " ред

@simplesmiler рд╕рдордЭ рдЧрдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ {{ }} рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ред

@ yyx990803 рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдШрдЯрдХ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

    render () {
        return this.$createElement('div', { staticClass: 'list-container' }, this.list)
    },
    data () {
         return {
               list: []
         }
    },
    method: {
         a () {
               this.list.push(this.$createElement('myComponent', {}))    
         }
    }

рдореИрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рди рдХреИрд╕реЗ рдмрд╛рдВрдз рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

new Vue({
  el:'body',
  data:{
    flag: true
  }
})
<input type="text" v-bind:placeholder="{test: flag, test2: !flag}" />

рдореБрдЭреЗ рдЕрдЧрд▓реЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЙрдореНрдореАрдж рд╣реИ:

<input type="text" placeholder="test" />
<!-- or -->
<input type="text" placeholder="test2" />

@nervgh рдпрд╣ рд╕рд╡рд╛рд▓ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред
рдЯрд░реНрдирд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ, v-bind:placeholder="flag ? 'test' : 'test2'" ред

@simplesmiler , рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ _Object-Syntax_ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@nervgh рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗрд╡рд▓ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рд╕реВрдЪреА рд▓реЗрддреА рд╣реИрдВред рдореВрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ class , рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреА рдУрд░ рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рдЙрдЪрд┐рдд рд╡рд╕реНрддреБ рдХреА рд╕реВрдЪреА рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдкреБрди: .once рдФрд░ .sync рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ?

рдореИрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдХрд┐ рдЖрдк рдЗрдирдХреЗ рдмрд┐рдирд╛ рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдШрдЯрдХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдШрдЯрдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдореЗрд░рд╛ "рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕" рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ ::

<label>{{type.caption}}:<input type="text" v-model="data"></label>

... рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдШрдЯрдХ рдЬреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ ui рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ

рдлрд┐рд░ рдореИрдВ рдЗрди рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐:

<div v-for="field in type.fields">
    <component :data.sync="data[field.name]" :is="field.ctype" :type="field">

рдиреЛрдЯ: рдЗрди рд╕рднреА рдШрдЯрдХреЛрдВ рдореЗрдВ рджреЛ рдкреНрд░реЙрдкреНрд╕ рд╣реИрдВ: data рдФрд░ type ред data рд╕рдВрдкрд╛рджрд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдиреЛрдб рд╣реИ рдХрд┐ рдШрдЯрдХ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП UI рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ type (рд╡рд┐рд╢рд╛рд▓, рд╕реНрдерд┐рд░) рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдиреЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ /рдлрд╝реАрд▓реНрдб рдкрджрд╛рдиреБрдХреНрд░рдоред

рдЙрд╕ рддрд░рд╣ рдХрд╛ рд╕рд╛рдорд╛рди рдмрд┐рдирд╛ .sync рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

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

рдореБрдЭреЗ рд╡рд╛рдХрдИ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ .... рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИред рдХреНрдпрд╛? рдЕрдм рддрдХ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдпрд╣реА рдПрдХ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреНрд▓реАрдирд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдкрд░ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗред рд░рд╛рдЬреНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реА рдПрдХрдорд╛рддреНрд░ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реИ рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред

2.0 рдореЗрдВ @JasonWoof v-model рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдШрдЯрдХ рдХреЛ рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ:

  1. value рдирд╛рдо рдХреЗ рдПрдХ рдкреНрд░реЙрдк рдХреЛ рдмреЗрдирдХрд╛рдм рдХрд░реЗрдВ
  2. рдПрдХ input рдШрдЯрдирд╛ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдВ рдЬрдм рдореВрд▓реНрдп рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП this.$emit('input', value)

рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

@ yyx990803 рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдореИрдВ рдмрд╕ рдкрд░ рдЕрдЯрдХ рдЧрдпрд╛ рд╣реВрдБ:

.sync рдХреНрдпреЛрдВ рд╣рдЯрд╛рдПрдВ?

рдореБрдЭреЗ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдХреЗрд╡рд▓ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ :selected.sync рдпрд╛ v-model рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рд╡реА-рдореЙрдбрд▓ рд╡рд┐рдзрд┐ рдХреЗ рдиреБрдХрд╕рд╛рди рджреЗрдЦрддрд╛ рд╣реВрдВ:

  1. рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдк-рдШрдЯрдХ рдкрдХреНрд╖ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреЙрдпрд▓рд░-рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реИ, рдЖрджрд┐ред
  2. рдЖрдк рд╡реА-рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдорд╛рди рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ .sync рдкреНрд░реЙрдкреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рд╡реА-рдореЙрдбрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ/рдХреНрд▓реАрдирд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдмрд╛рд▓ рдШрдЯрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкреНрд░реЛрдк рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИред рдореИрдВ рдпрд╣ рднреА рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ .sync рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред

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

рдореИрдВ Vue.js рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдБ (3 рджрд┐рди рдкрд╣рд▓реЗ) рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ, Vue.js рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░рдг рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ:

  1. рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдбреЛрдо рд╣реЗрд░рдлреЗрд░
  2. рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕рд╣рд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореВрд▓реНрдп/рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕рд╛рд░

рдХрдо рд╕реЗ рдХрдо рдореИрдВрдиреЗ рдЕрдм рддрдХ рдпрд╣реА рдЦреЛрдЬрд╛ рд╣реИред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .sync рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ Vue.js рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рджреВрд╕рд░рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

@JasonWoof рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдкрд╖реНрдЯ рдмрдирд╛рдо рдирд┐рд╣рд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╕реНрд╡рдпрдВ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд╕рднреА рдЕрдВрддрд░ рдмрдирд╛рддреЗ рд╣реИрдВред

... рдФрд░ рдЬрдмрдХрд┐ рдХреЛрдИ рдпрд╣ рддрд░реНрдХ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╕ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ .sync , рдЕрдм рддрдХ рдХрд╛ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рдЕрд▓рдЧ рд╣реИред рд▓реЛрдЧ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╡реЗ рдмрд╛рдж рдореЗрдВ рд╢рд╛рдпрдж рд╣реА рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдп рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

  • рд╣рдо рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдмрдЪреНрдЪреЗ рдХреЗ рдмреАрдЪ рдПрдХ рдорд╛рди name рд╕рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВред рд╕рдм рдмрдврд╝рд┐рдпрд╛ред
  • рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ _'рдЕрд░реЗ, рдЬрдм рд╡рд╣ рдорд╛рди рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ!'_
  • рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ watch рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдЕрдЪреНрдЫрд╛!
  • рдмрд╛рдж рдореЗрдВ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рддреЛ рджреНрд░рд╖реНрдЯрд╛ рдЖрдЧ рд▓рдЧрдиреЗ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣реАрдВ рднреА console.log() рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
  • рдмрд╣реБрдд рдХрдард┐рди рд╕реЛрдЪ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рдореВрд▓реНрдп рдмрджрд▓ рдЬрд╛рдП, рди рдХрд┐ рдмрдЪреНрдЪреЗ рдпрд╛ "рджрд╛рджрд╛-рджрд╛рджреА"ред
  • рдЕрдм рд╣рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ watch рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
  • рдХреЗрд╡рд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬрд╝ рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ
  • рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреЛрдИ рд╣рдореЗрдВ рд╕рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рджреВрд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ-рддрд░рдлрд╝рд╛ рдкреНрд░реЛрдк рдФрд░ рдПрдХ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдХреЛрдб рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрд░реНрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдФрд░ рдЬрдм рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдмрдЧ рдЬрд▓реНрджреА рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

...рдФрд░ рдпрд╣ рддрдм рдФрд░ рднреА рдЕрдзрд┐рдХ рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрддрд░реЛрдВ рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ (рдПрдВрдЯреА-) рдкреИрдЯрд░реНрди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдордВрдЪреЛрдВ рдкрд░ рдФрд░ рдЧрдЯрд░ рдЪреИрдЯ рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рджреЗрдЦрд╛ рд╣реИред

.sync рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╢реБрд░реВ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ, рд╕реНрдкрд╖реНрдЯ, рдмрдирд╛рдП рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдХреЛрдб .sync рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд░рд▓ рдирд╣реАрдВ рд░рд╣реЗрдЧрд╛ред

рдареАрдХ рд╣реИред рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐... рдЗрд╕реЗ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рдЖрдкрдХреА рдкрд╕рдВрдж рдХреЗ рдкреИрдЯрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рди рддреЛрдбрд╝ рд╕рдХреЗрдВ рдФрд░ рд▓реЛрдЧ рд╕реАрдорд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдмреБрд░реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдореВрд░реНрддрддрд╛ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИред рдЕрдореВрд░реНрддрди рд╣рдореЗрдВ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред рд╡реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдХрдард┐рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдХрдард┐рди, рдЖрджрд┐ .... рд▓реЗрдХрд┐рди рдЖрдк рдЕрдореВрд░реНрдд рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдпрд╣реА рд╡рд╣ рдЪреАрдЬ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╡/рдЙрдкрдпреЛрдЧреА рдмрдирд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рднрд╛рд╖рд╛ рдпрд╛ рдврд╛рдВрдЪреЗ рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╢рд┐рдХреНрд╖рдг, рд╕рд▓рд╛рд╣, рд╕реАрдЦрдиреЗ рдореЗрдВ рд╣реИред рд╣рдо рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рди рдмрдирд╛рдПрдВред

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

рд▓реЛрдЧ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪреНрдЪреЛрдВ рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдЖрдкрдХреА v-model рдЪреАрдЬ рдЗрддрдиреА рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдореИрдВ рдореВрд▓ рд╡рд╕реНрддреБ/рд╕рд░рдгреА рдФрд░ рдПрдХ рдХреБрдВрдЬреА рдкрд╛рд╕ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдмрдЪреНрдЪрд╛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЦрд┐рд░реА рдмрд┐рдЯ рд╣рд┐рдЯ рд╣реИ рдЬреЛ рдореИрдВ рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: рдореИрдВ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ) рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ .sync рдХреА рдХрдореА рджреЗрдЦрддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрд╛ рдЖрдкрдХреЗ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдорд╛рди рд╣реЛрдЧрд╛ред

рд╢рд╛рдпрдж рдпрд╣ рдмрд┐рдирд╛ рдХрд╣реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЧреБрд╕реНрд╕рд╛ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдЬрдм рд▓реЛрдЧ рдореБрдЭ рдкрд░ рдбрд┐рдЬрд╛рдЗрди рджрд░реНрд╢рди рдереЛрдкрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдмрд╣реБрдд рдЧрд▓рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдлрд┐рд░ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╕реАрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╢рдХреНрддрд┐ рдХреЛ рдЗрд╕ рдбрд░ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

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

@JasonWoof рдЗрд╕рдХрд╛ " рдФрд░ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╕рдорд╛рдзрд╛рди рдкрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рдЖрдк рдЕрдкрдиреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреЗ рддрд░реНрдХ рд╢рд╛рдпрдж рд╣реА рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓рдЧрддреЗ рд╣реИрдВред

рд▓реЛрдЧ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪреНрдЪреЛрдВ рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдЬрд╝рд░реВрд░ред рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ 'рдмрд▓' рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдЖрдк рдЕрднреА рднреА this.$parent рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк $data рдХреЛ рдПрдХ рдкреНрд░реЛрдк рдЖрджрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ $emit рдПрдХ рдШрдЯрдирд╛ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп, рдЗрд╕рд▓рд┐рдП рд╡реЗ .sync рдЪреАрдиреА рдХреА рддрд░рд╣ рдЖрдХрд░реНрд╖рдХ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рд╕рд╛рде рд╣реА, $parent et.al. рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕реЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЬреЛ рд╡реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдирддреАрдЬрддрди, рдврд╛рдВрдЪреЗ рдХреЛ .sync рдЬреИрд╕реА 'рдЬрд╛рджреБрдИ' рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдврд╛рдВрдЪреЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред

рдХреНрдпрд╛ Youda рдХрд╛ рдЪреАрдиреА рд╕рдВрд╕реНрдХрд░рдг рд╣реИ? .

Vue-рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ?

@roblav96

рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рд░рд╛рдЙрдЯрд░ рдХреЛ Vue рдореЗрдВ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@ рдмреНрд▓реЗрдХ-рдиреНрдпреВрдореИрди

рдХреНрдпрд╛ рд╣рдо рд╡реВ-рдХреНрд▓реА рдкрд░ рдПрдХ рд╕рд╛рде рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ

@roblav96

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреБрдЫ рд╣реИрдВ, рдЗрд╕реЗ рд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП vue-loader рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ 2.0 рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХреЗрд╡рд▓ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЕрджреНрдпрддрди рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреАрдВред

рдХреНрдпрд╛ рдмреАрдЯрд╛/рд░рд┐рд▓реАрдЬрд╝ рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдИрдЯреАрдП рд╣реИ?

@Evertt рдЕрд▓реНрдлрд╛ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдмреАрдЯрд╛ рдкреНрд░рд▓реЗрдЦрди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдкрд╛рд▓рди рдХрд░реЗрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдХреЛрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рд╡реВ-рд░рд╛рдЙрдЯрд░ ect) рд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд░реНрдердиред рдмреАрдЯрд╛ рд╕рдлрд▓ рд╕рд╛рдмрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред

@ рдмреНрд▓реЗрдХ-рдиреНрдпреВрдореИрди рдЙрд╕ рддреНрд╡рд░рд┐рдд, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рдкреВрд░реНрдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡рд╣реА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВред :-рдбреА

Vue 2.0 рдореЗрдВ replace: false рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди?

рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ JSX рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ?

@reohjs - рдирд╣реАрдВ рдФрд░ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ Vue рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛, рдЕрдЧрд░ рдпрд╣ JSX рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╕реНрдХреЙрдЯ

@reohjs рдХрд▓ рд░рд╛рдд рдЗрд╡рд╛рди рдХреА рдзрд╛рд░рд╛ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдпрд╣ рдмреАрдЯрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдореВрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ JSX рдкреНрд▓рдЧрдЗрди рдПрдХ рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдореВрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИ

ЁЯСН ЁЯСН ЁЯСН ЁЯСН

рд╣рд╛рдБ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдорд╛рдирдХ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓рд╛рдн рд╣реИрдВред

JSX рд╕рдВрдХрд▓рди рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: https://babeljs.io/docs/plugins/transform-react-jsx/

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ _h рдлрд╝рдВрдХреНрд╢рди React.createElement рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдЧрд╛

2 рддрд░рд╣ рдХреЗ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╕реНрдЯрдо рд╡реА-рдореЙрдбрд▓ рд╕рдВрд╢реЛрдзрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП v-model.trim )ред рдпрджрд┐ рдкрд╛рд░реНрд╕рд┐рдВрдЧ/рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ/рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ рдЬрд╣рд╛рдВ рд╣рдо рдкрд╛рд░реНрд╕рд┐рдВрдЧ/рд╕реНрд╡рд░реВрдкрдг рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Vue.js 1.0 gettext рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ vm.$interpolate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдХреЛрдб рдХреЛ 2.0 рдХреИрд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП:

  • vm.$interpolate рдкрджрд╛рд╡рдирдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  • рдирд┐рд░реНрджреЗрд╢ рдЕрдм 2.0 рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ

рдпрд╛ рдХреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ?

import languages from 'src/plugins/translate/languages'
import translateUtils from 'src/plugins/translate/utils'

const translateDirective = {
  terminal: true,
  params: ['translateN', 'translatePlural'],
  paramWatchers: {
    translateN: function () {
      this.translate()
    },
  },
  isPlural: function () {
    return 'translateN' in this.params && 'translatePlural' in this.params
  },
  bind: function () {
    this.boundTranslate = this.translate.bind(this)
    this.msgid = this.el.innerHTML.trim()
    this.translate()
    languages.eventEmitter.on(languages.languageChangedEventName, this.boundTranslate)
  },
  unbind: function () {
    languages.eventEmitter.removeListener(languages.languageChangedEventName, this.boundTranslate)
  },
  translate: function () {
    let n = this.isPlural() ? parseInt(this.params.translateN) : 1
    let translation = translateUtils.getTranslation(this.msgid, n)
    this.el.innerHTML = this.vm.$interpolate(translation)
  },
}

export default translateDirective

рдЬрдм рд╕реЗ рдореИрдВ Vue рдореЗрдВ рдирдпрд╛ рд╣реВрдВ, рдмрд╕ рдХреБрдЫ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╢рдмреНрджреЛрдВ рдХреЛ рдлреЗрдВрдХ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ API рдХреА рдХрдореА рдпрд╛ _under-the-hood_ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЛ рджреЗрдЦрдХрд░ рдЦреБрд╢ рд╣реВрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдФрд░ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдврд╛рдВрдЪреЗ рдХреА рдЕрдиреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ _рдЕрдЧрд▓реА_ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдмрдзрд╛рдИ! рдореИрдВ

@kemar рдореИрдВ

{{ $translate('some.Key.path') }}

рдХреНрдпрд╛ рд╕рд░рдгреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдкрддреНрддрд┐ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ 2.0 рд╕реЗ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИ? рдЕрд▓реНрдлрд╛ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛, рдмрд╕ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЕрд░реНрдерд╛рдд:

components: [compA, compB, compC]

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ ES6 рдореЗрдВ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рд╣реИ рдЬреЛ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдп рдРрд╕реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕рд░рдгреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЙрдкрдпреЛрдЧреА рдерд╛ред

рдореИрдВ рдЖрдк рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рджреЗрдЦрдиреЗ rendering to native interfaces on mobile рдХреЗ рд╕рд╛рде weex рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ Vue рдФрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ Nativescript рдмрд╛рддред

Vue рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд┐рд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░реНрдЬ рдкрд░ рдХреБрдЫ рдФрд░ рдпрд╛ рддреЛ Weex рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╛ Quasar ред

рд╕реНрдХреЙрдЯ

рдпрджрд┐ рдЕрдм dispatch рдпрд╛ broadcast рддреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЪрд╛рдЗрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдХрд┐рд╕реА рдШрдЯрдирд╛/рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛? рдпрд╣ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдмрд╕ рдпрд╛ vuex рдХреЗ рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдм рд╣рдо рдЦреЛрдЬ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЗрдгреА рд╕реНрд▓рд╛рдЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╢реНрд░реЗрдгреА рд╕реНрд▓рд╛рдЗрдбрд░ рдШрдЯрдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдФрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЦреЛрдЬ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдПрдХ рдмрдЪреНрдЪрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо dispatch рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рд░реЗрдВрдЬ рд╕реНрд▓рд╛рдЗрдбрд░ рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рдХрд░ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдкреИрд░реЗрдВрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЦреЛрдЬ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИред

@jrenton рдЗрдирд▓рд╛рдЗрди рд╢реНрд░реЛрддрд╛ <child @some-event="parentHandler">

рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рджреЛрд╕реНрддреЛрдВред

рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдШрдЯрдХ рдкреЗрдбрд╝ рдХреЛ рдХреЗрд╡рд▓ "рдПрдХ рддрд░рдл рдкреНрд░рд╡рд╛рд╣" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдПрдВ, рдЬреЛ рдХрд┐ рдбреАрдмрдЧ рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЖрд╕рд╛рди рд╣реИред

рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рд╕рддреНрдпрддрд╛ рд╡реНрдпреБрддреНрдХреНрд░рдорд╛рдиреБрдкрд╛рддреА рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рд╕рдмрд╕реЗ рд╢реАрд░реНрд╖ рдШрдЯрдХ рд╕реЗ рдХрд┐рддрдиреА рджреВрд░ рд╣реИрдВред

рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ:

render (h) {
    return (
    <div>
      {this.things.map(thing => <Thing thing={thing}></Thing>)}
   </div>
 );

рдореБрдЭреЗ рдЦреБрд╢ рдХрд░ рджреЗрддрд╛ рд╣реИ

рдХреНрдпрд╛ 2.0 рдХреА рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рд▓рд┐рд╕реНрдЯ рдореЗрдВ рдФрд░ рднреА рдЬреБрдбрд╝ рдЬрд╛рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ? рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИред

@zephraph рд╣рд╛рдВ, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдкреАрдЖрдИ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред ЁЯШГ рдЕрдм рддрдХ рдХреБрдЫ рднреА рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдЕрд▓реНрдлрд╝рд╛рдЬрд╝ рд╕реЗ рдХрднреА-рдХрднреА рдЯреВрдЯрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИ, рдореИрдВрдиреЗ рдЕрддреАрдд рдореЗрдВ рдИрд╡реЗрдВрдЯ рдкреНрд░реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЬрд╣рд╛рдВ рдореИрдВ vuex рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ: рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ рдФрд░ рдЬрдм рдмрдЪреНрдЪрд╛ рдореВрд▓реНрдп рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмрдЪреНрдЪрд╛ рдПрдХ рдИрд╡реЗрдВрдЯ рднреЗрдЬ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред
рдЕрдм рдореИрдВрдиреЗ vuex рд╕реНрдЯреЛрд░ рдореЗрдВ рдЪрд╛рдЗрд▓реНрдб рд╡реИрд▓реНрдпреВ рдХреА рдПрдХ рд╕рд░рдгреА рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рд▓ рдШрдЯрдХ рдХреЛ рдЧреЗрдЯрдЯрд░ рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЙрд╕ рд╕рд░рдгреА рдХреЗ рдХрд┐рд╕ рддрддреНрд╡ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ, vuex рдХрд┐рд╕реА рдореВрд▓реНрдп рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╣реВрдБ?
рдШрдЯрдирд╛ рдкреНрд░реЗрд╖рдг рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

$broadcast рдХреЛ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрдм рдХреЛрдИ рдЦрд╛рд╕ рдЪреАрдЬ рд╣реЛрддреА рд╣реИ рддреЛ рдЖрдк рд╕реАрдзреЗ рдмрдЪреНрдЪреЗ рдХреЛ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╣реЗрдВрдЧреЗ? рдпрд╣ рдПрдХ рдРрд╕рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкреНрд░реЛрдк рдлрд┐рдЯ рдирд╣реАрдВ рд▓рдЧрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдпрд╛ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдкреНрд░реЛрдк рдХреЛ рдмрдЪреНрдЪреЗ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рдмрд╕ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдбреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдмрдЪреНрдЪрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд░рд╣рд╛ рд╣реЛ, рди рдХрд┐ рдореВрд▓ рдШрдЯрдХ рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдкрд░ред

рдПрдХ рдмрдЪреНрдЪреЗ рдореЗрдВ $emit рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдЗрдирд▓рд╛рдЗрди рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рджреВрд╕рд░реА рддрд░рдл рдХреБрдЫ рднреА рд╣реИ?

рдореИрдВ рдПрдХ рдкреНрд░реЛрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдПрдорд┐рдЯрд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдлрд┐рд░ рдмрдЪреНрдЪреЗ рдореЗрдВ emmiter.on , рдХреНрдпрд╛ рдпрд╣ рднрдпрд╛рдирдХ рд▓рдЧрддрд╛ рд╣реИ?

@gwildu рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рддрд░реНрдХ рд▓реЗ рд╕рдХрддреА рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд╕рд╛рде рдЖрдЗрдЯрдо рдЖрдИрдбреА рдкрд╛рд╕ рдХрд░ рд╕рдХреЗрдВред рдФрд░ рдЖрдЗрдЯрдо рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЗрдЯрдо рд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреИрд░реЗрдВрдЯ рдореЗрдВ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдЖрдЗрдЯрдо рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рдЖрдЗрдЯрдо рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВред

// Vuex store
state: {
  items: [],
},
mutations: {
  ITEM_REMOVED: function(state, id) {
    var io = state.items.findIndex(item => item.id === id);
    state.items.splice(io, 1);
  },
},
// within the parent component
vuex: {
  getters: {
    items: state => state.items,
  },
  actions: {
    removeItem(store, id) {
      store.dispatch('ITEM_REMOVED', id);
    },
  },
},
<!-- within the parent template -->
<item v-for="item in item"
  :item-data="item.data"
  @removed="removeItem(item.id)"
>
</item>
<!-- within the child template -->
<button @click="$emit('removed')">Remove</button>

рдпрджрд┐ рдЖрдкрдХреЗ рдЖрдЗрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдбреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдПрдкреАрдЖрдИ рд╕реЗ рдЖрдЗрдЯрдо рдмрдирд╛рддреЗ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЖрдИрдбреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп cuid рдЙрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИред

@fergaldoyle рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рдХрд╛рд░рдг, рдЖрдк рдмрдЪреНрдЪреЗ рдХреЗ рд╡реАрдПрдо рдХрд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдкрд░ v-ref:some-child рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдкрд░ $emit , рдпрд╛ рд╕реАрдзреЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ this.$refs.someChild.<methodName>(...) ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдиреАрдЪреЗ рдмрд╣рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдПрдВ рдШрдЯрдХ рдХреЛ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рдмрдирд╛рддреА рд╣реИрдВред

рдореИрдВ vuejs 2 рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рдерд╛ рдФрд░ рдпрджрд┐ рдЖрдк рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдореИрдВрдиреЗ Snabbdom рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛

h('div', {style: {color: '#000'}}, [
  h('h1', 'Headline'),
  h('p', 'A paragraph'),
]);

рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ

<div style="color:#000;"><h1>Headline</h1><p>A paragraph</p></div>

рд▓реЗрдХрд┐рди vuejs рдореЗрдВ рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ

<div style="color:#000;"><h1></h1><p></p></div>

рдХреНрдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ ( <h1> рдЕрдВрджрд░)?

@dubcanada рдХреНрдпреЛрдВ рди рд╕рд┐рд░реНрдл рдЙрдиреНрд╣реЗрдВ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдареАрдХ рд╣реИ рдХрд┐ рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж

рдирдорд╕реНрддреЗред рдореЗрд░реЗ рдкрд╛рд╕ Vue 2.0 рдореЗрдВ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ Vue 2.0 рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред Vue 1.0 рдореЗрдВ рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХреБрдЫ рд╕рдВрдХреНрд░рдордг/рдПрдиреАрдореЗрд╢рди рдХрдм рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЕрдм рдореИрдВ рдЗрд╕реЗ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╣реИрдХреА рдФрд░ рдмрджрд╕реВрд░рдд рддрд░реАрдХрд╛ рд╣реИ, рд╣рдо рд╕рднреА рд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдЬрдм рд╣рдо рд╡реА-рд╢реЛ/рд╡реА-рдЗрдл рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдШрдЯрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЕрдВрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдпреВ 2.0 рдореЗрдВ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рд╣реЛрдЧрд╛?

<my-comp v-show="isVisible" @transition-end="onTransitionEnd" transition></my-comp>

рдореБрдЭреЗ рдЕрдЧрд▓реА Vue рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рджреЗрдЦрдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреА :) рдореБрдЭреЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@sqal рдЖрдк рд╕рдВрдХреНрд░рдордг рд╣реБрдХ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://jsfiddle.net/simplesmiler/Lrk9sxjf/97/

@dubcanada рдЗрд╕реЗ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рддрддреНрд╡ рдмрдирд╛рддреЗ рд╕рдордп рдбреЗрдЯрд╛ рдЫреЛрдбрд╝рдирд╛)

рдзрдиреНрдпрд╡рд╛рдж @fergaldoyle рдФрд░ @simplesmiler рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЖрдкрдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдмрдЪреНрдЪреЗ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдЧреИрд░-рдмреБрджрдмреБрджрд╛рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдирдорд╕реНрддреЗред рдереЛрдбрд╝реА рд╕реА рдкреГрд╖реНрдарднреВрдорд┐: рд╣рдо рд╡реЗрдмрдЧреНрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореИрдВ 3рдбреА рд╕рддрд╣ рдкрд░ рдХреБрдЫ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдирд╡рд╛рд╕ рдФрд░ рдлрд┐рд░ рдХреИрдирд╡рд╛рд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдПрдВрдЧреБрд▓рд░, рд░рд┐рдПрдХреНрдЯ рдФрд░ рд╡реАрдпреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рд╡реВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ! рд░рд┐рдПрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реБрдП рдореБрдЭреЗ рд░рд┐рдПрдХреНрдЯ-рдХреИрдирд╡рд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛ред рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЛрдо рдиреЛрдбреНрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рдЗрд╕реЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЦреАрдВрдЪрддреЗ рд╣реИрдВред

рдХреНрдпреЛрдВрдХрд┐ Vue 2.0 рднреА рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдирдорд╕реНрддреЗ,

.sync рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╕ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХ рдкрд░ рдкреНрд░реЛрдк рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИред

рддреЛ, рд╕реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
<component :value.sync="some.value"></component>
рдкреНрд░рддрд┐
<component :value="some.value" @update="updateSomeValue"></component>

рдкреНрд░реЛрдк value рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?
рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ

props: ['value'],
computed: {
    _value: {
        get(){
            return this.value;
        },
        set(newVal) {
            this.$emit('update', newVal);
            return newVal;
        }
    }
}

рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдореВрд▓ рдШрдЯрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдореВрд▓реНрдп рдХреЛ рдкреНрд░реЛрдк рдкрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдШрдЯрдХ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ ...

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдм рд╣рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ:

props: ['value'],
data() {
    return {
        _val: this.value
    }
},
watch: {
    value(newVal) {
        this._val = newVal;
    }
},
computed: {
    _value: {
        get(){
            return this._val;
        },
        set(newVal) {
            this._val = newVal
            this.$emit('update', newVal);
        }
    }
}

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓реНрдп рдХреЗ рдЧреБрдЬрд░рдиреЗ (рдФрд░ рдмрджрд▓рдиреЗ) рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореВрд▓реНрдп рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд░ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рддрд╛-рдкрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдкреНрд░рдЪрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╛ рдореИрдВ рдпрд╣рд╛рдБ рдЬрд╛рджреВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░реЙрдкреНрд╕ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рд▓рдЧрднрдЧ рдЦреБрдж рдХреЛ рдПрдХ рд░реИрдкрд░-рдШрдЯрдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдмрдЪреНрдЪреЗ рд╕реАрдзреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП this.$parent.value рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд░реИрдкрд░-рдШрдЯрдХ рдХреЗрд╡рд▓ рдкреНрд░реЙрдкреНрд╕/рдЧрдгрдирд╛/рдШрдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ

@Towerful "рдореВрд▓реНрдп рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ" рд╕реЗ this.$emit('value-updated', newValue) рдмрдЬрд╛рдп рд╕реЗрдЯрд░ рд╢реИрд▓реА ( this._value = newValue ) рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рд╡рди-рд╡реЗ рдлреНрд▓реЛ рдХреА рд╢рдХреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдмрдЪреНрдЪреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдмрдЪреНрдЪреЗ рдХреЛ "рд╣реЛрд▓реНрдб рдкрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж)ред

@simplesmiler рдПрдХ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдЗрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдмрд╛рдБрдз рд╕рдХрддреЗ рд╣реИрдВ, рдирд╣реАрдВ? рддреЛ рдЖрдк v-model рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ 1 рд╕реНрдерд╛рди рдкрд░ рд╕реЗрдЯрд░ рдФрд░ рдЧреЗрдЯрд░ рд╣реЛрдиреЗ рд╕реЗ рдореВрд▓реНрдп рдХреЗ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдФрд░ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдФрд░ рдШрдЯрдХ рдХреЗ рднреАрддрд░ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдФрд░ рдкреВрд░реЗ рдХреЛрдб рдореЗрдВ рдмрд┐рдЦрд░рд╛ рд╣реБрдЖ рд╣реИред
рдпрджрд┐ рдореЙрдбрд▓ рдХреЗ рднреАрддрд░ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд methods рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ updateValue рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

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

рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдирд╛ рд╕рд┐рд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ рдЯрд╛рд╡рд░рдлреБрд▓ - рдЖрдк

рд╕реНрдХреЙрдЯ

@ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА :

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк 2.0 рдореЗрдВ рдХреЙрдореЛрдиреЗрдВрдЯреНрд╕ рдкрд░ v-model рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

<my-input v-model="myValue">

// in my-input.vue
<input :value="value" @change="$emit('input', $event.target.value)">

export default {
  props: ['value']  //special prop received from v-model
}

рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ <input> рддрддреНрд╡реЛрдВ рдФрд░ рдХрд╕реНрдЯрдо рдЗрдирдкреБрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рджреЛ-рддрд░рдлрд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдмрдирд╛рддрд╛ рд╣реИред


рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрдИ рдкреНрд░реЙрдкреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рд╕рд░рд▓ рдХрд╕реНрдЯрдо рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕рд╛рд░ рд╣реИрдВ), рд╣рдо .sync рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рддрд░реНрдХ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдпрд╣ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдмрдЪреНрдЪреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдбреЗрдЯрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ .sync рддрд░рд╣ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ _not_ solvabel рд╣реИ рдЬреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡реА-рдореЙрдбрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╣реИ рдФрд░ рдЕрднреА рднреА .sync рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реИ? рдпрд╣ рдЕрдореВрд░реНрдд рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЖрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдУрд╣, рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдпрд╛рдж рдЖрдпрд╛?! рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдУрдкреА рдореЗрдВ рд╣реИ, рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЪрд░реНрдЪрд╛ рд╣реИ! рдЕрдм рдореИрдВ рдереЛрдбрд╝рд╛ рдореВрд░реНрдЦ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдБред
рдХреНрдпрд╛ рдореВрд▓ рдкреЛрд╕реНрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдШрдЯрдХ рдкрд░ v-model рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
@LinusBorg рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ, рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдЬрд╣рд╛рдВ рдПрдХ рдШрдЯрдХ рдкрд░ v-model рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдореВрд▓ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╛рдж рдЖрдпрд╛ред
рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА, рдпрд╣ рдХреЗрд╡рд▓ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдШрдЯрдХреЛрдВ рдХреА рдмрд╛рдд рд╣реЛрдЧреАред рдФрд░ рдпрд╣ рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдШрдЯрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ :)

@ рдЯрд╛рд╡рд░рдлреБрд▓

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

рдкреБрди: рдмрд░рдмрд╛рдж рддрд░реАрдХреЗред рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рд╣рдореЗрд╢рд╛ @value-updated="value = $arguments[0]" ред рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВ)ред рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рд╕реЗрдЧрд╡реЗред

рдкреБрдирд╢реНрдЪ: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рд╕реЗ рджреВрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдмрдпрд╛рди рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВред рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ value-updated="value = $arguments[0]" рджреНрд╡рд╛рд░рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдмрдЪреНрдЪреЗ рдХреЛ рдореВрд▓реНрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рджреВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, .sync рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ watch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ watch рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рдЕрдкрдбреЗрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЧрдгрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрдВрдкреНрдпреВрдЯреЗрдб рдХреИрдиред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ watch рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХреЛ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ "рдЯрд┐рдХ" рд▓реЗрддреЗ рд╣реБрдП рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рд╕реАрдзреЗ рдиреЗрд╕реНрдЯреЗрдб nextTick рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЕрдм, -updated рд╣реИрдВрдбрд▓рд░ рдПрдХ рдмреЗрд╣рддрд░ рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдмрдЪреНрдЪреЗ рдХреЗ рдЗрд░рд╛рджреЗ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЬрдЯрд┐рд▓ рдореЙрдбрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ (рдпрд╛ рдПрдХ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдмрдЪреНрдЪреЗ рдХреЛ рдЕрдЧрд▓реЗ рдЯрд┐рдХ рдореЗрдВ рдЕрджреНрдпрддрди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ (рдпрд╛ рдирд╣реАрдВ рдЕрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)ред

@ yyx990803 рдХреНрдпрд╛ рд╣рдо $emits рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд╣рдордиреЗ vuejs1 рдореЗрдВ $dispatch рдФрд░ $broadcast рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ рдерд╛?

рдЕрдзрд┐рдХ vuejs-esque рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕ рдХреА рддрд░реНрдЬ рдкрд░ рдХреБрдЫ (рдПрдХ 'рдЪрд╛рд▓реВ' рдпрд╛ 'рд╕реБрдиреЛ'):

Vue.component('cart', {
  template: "#cart-template",
  data () {
    return {quantity : 0 }
  },
  watch: {
    'quantity': function (quantity, oldQuantity) {
      console.log('quantity changed from %s to %s', oldQuantity, quantity)

      bus.$emit('cart.quantity-changed', quantity)
    }
  }
});

new Vue({
  el: '.container',
  data : function () {
    return {
      quantity: 0
    };
  },
  on: {
    'cart.quantity-changed': function (newQuantity) {
      console.log('quantity change emitted');

      Vue.set(self, 'quantity', newQuantity);
    }
  },
  computed:{
    gold: function(){
      return this.quantity * 100
    }
  }
})

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдмрд╕ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╡реЗрдВрдЯ рдмрд╕ рдПрдХ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдо рддреМрд░ рдкрд░, рдПрдХ рд╕реНрдЯреЛрд░ рдкреИрдЯрд░реНрди, рдЬреИрд╕реЗ рдХрд┐ vuex, рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред

рдПрдХ рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЬреЛ рдПрдХ рдмрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд" рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ, рдЧрд▓рдд рд╕рдВрдХреЗрдд рд╣реЛрдЧрд╛ред

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

vuex рдЬреИрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдЯреЛрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

var store = {
  cart: {
    quantity: 0
  }
}
Vue.component('cart', {
  template: "#cart-template",
  data () {
    return store.cart
  },
});

new Vue({
  el: '.container',
  data : function () {
    return store.cart;
  },
  computed:{
    gold: function(){
      return this.quantity * 100
    }
  }
})

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ vue2 рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЦреБрдж рдХреЛ рд╢реВрдЯ рдХрд░рдирд╛ рдХрдард┐рди рдмрдирд╛рдирд╛ рд╣реИ
рдкреИрд░ рдореЗрдВред

рд╕реВрд░реНрдп рдкрд░, 3 рдЬреБрд▓рд╛рдИ, 2016 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:24 рдмрдЬреЗ, рдереЛрд░рд╕реНрдЯрди рд▓реБрдирдмреЛрд░реНрдЧ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЗрд╡реЗрдВрдЯ рдмрд╕реЗрдВ рдПрдХ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдпрд╣ рдХреЗрд╡рд▓ рд╣реИ
рдЙрдкрдпреЛрдЧреА рдХреБрдЫ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗред рдЖрдо рддреМрд░ рдкрд░, рдПрдХ рд╕реНрдЯреЛрд░ рдкреИрдЯрд░реНрди, рдЬреИрд╕реЗ рдХрд┐ vuex, рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред

рдПрдХ рдПрдкреАрдЖрдИ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЬреЛ рдмрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░" рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ
рд╕рдорд░реНрдерд┐рдд" рдЧрд▓рдд рд╕рдВрдХреЗрдд рд╣реЛрдЧрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/vuejs/vue/issues/2873#issuecomment -230158828, рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe/AACoukCpCgYlDbVej_w_h4NEhQ-imYHBks5qR9QwgaJpZM4IedHC
.

@karysharpe $emit s рдХреЛ рдмрдЪреНрдЪреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ v-on рд╕рд╛рде рд╕реБрдирдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореВрд▓ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЯреИрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рднреА рд╣реИ рдЬрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

<list-item v-for="(item, index) in items"
  :title="item.title"
  @remove="items.splice(index, 1)"
>
</list-item>

рдХреНрдпрд╛ 2.0 рд░рд┐рд▓реАрдЬ рдХреА рдХреЛрдИ рддрд╛рд░реАрдЦ рд╣реИ? рдореИрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд▓реЗрдХрд░ рдХрд╛рдлреА рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред рдмрдзрд╛рдИ!
рдореИрдВ Vue 2.0 + Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБред

@Sendoushi рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдЕрднреА рдХреЛрдИ рддрд╛рд░реАрдЦ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмреАрдЯрд╛ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рднреАрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Vuex 2.0 рдХреЛ рднреА рд╕рд╛рде рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рди рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди vuex рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ API рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА, рдмрд▓реНрдХрд┐ Redux рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Vue рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рднреА рдЕрдзрд┐рдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛ред

Vuex 2.0 рдХреЛ рднреА рд╕рд╛рде рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рди рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди vuex рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ API рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА, рдмрд▓реНрдХрд┐ Redux рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Vue рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рднреА рдЕрдзрд┐рдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛ред

@chrisvfritz рдпрд╣ рд╕реБрдирдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИред рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛:

const mutations = {
  LOGIN (state) { state.loggedIn = true },
  LOGOUT (state) { state.loggedIn = false }
}

export const types = Object.keys(mutations)

// For now we dynamically generate all the actions like this.
// It's rare when anything more complicated is needed, but there
// is an example here:
// http://vuex.vuejs.org/en/actions.html
export const actions = types.reduce((o, el) => {
  var action = S(el.toLowerCase()).camelize().s
  o[action] = ({dispatch}, ...args) => dispatch(el, ...args)
  return o
}, {})

Vue 2 рдФрд░ vuex 2 рдХреЗ рд░реЛрдбрдореИрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдпрд╛ рдПрдХ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЧрддрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╢реНрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, vue-router рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ - рдХреНрдпрд╛ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА Vue 2 рдХрд╛ рд╕рдорд░реНрдерди рдорд┐рд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдХреЗ рдмрд┐рдирд╛ Vue 2 рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

@gwildu рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдПрдХ рд╕рд╛рде рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ Vuex 2.0 рдХреЗрд╡рд▓ Vue 2.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред рдкреНрд░реА 2.0 Vuex рддрдм рднреА рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ Vue 1.x рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

Vue 2.0 рдХреА рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ @Uninen Vue рд░рд╛рдЙрдЯрд░ рдХреЛ рдЖрдЧреЗ рдХреБрдЫ рдкреНрдпрд╛рд░ рдорд┐рд▓реЗрдЧрд╛ред

рдПрдирдПрдлрдУ @chrisvfritz рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)

@chrisvfritz @Uninen рд╕реБрдзрд╛рд░: Vuex 2.0 рднреА Vue 1.x рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

vue-router рдХрд╛ рдЕрдЧрд▓рд╛ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ Vue 2.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред

рд░рдирдЯрд╛рдЗрдо рдУрдирд▓реА рдмрд┐рд▓реНрдб: рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрдкрд╛рдЗрд▓ рд╕реНрдЯреЗрдк рдореЗрдВ рдпрд╛ рддреЛ рдкреНрд░реА-рдХрдВрдкрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реЗрдВрдбрд░ рдлрдВрдХреНрд╢рди рд▓рд┐рдЦреЗред

рдХреНрдпрд╛ vueify/vue-loader рдФрд░ .vue рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреНрдпрд╛ рдШрдЯрдХреЛрдВ рдореЗрдВ template: рдЧреБрдгреЛрдВ рдХреЛ render рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдмреЗрд▓ рдкреНрд▓рдЧрдЗрди рд░рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛?

2.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрдпрд╛ рдмрд╣рд┐рд╖реНрдХреГрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдкрд╣рд▓реЗ 2.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдШрдЯрдХ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЕрдм рд╡рд╣ рддрддреНрд╡ рдирд┐рд░реНрджреЗрд╢рдХ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ?

рдЙрд▓реНрд▓реЗрдЦрд╛рдиреБрд╕рд╛рд░:

рд╡реА-рдореЙрдбрд▓ рдЕрдм рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЗрдирд▓рд╛рдЗрди рдорд╛рди рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рддреНрдп рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдЧрд╛ред

рдЙрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

<child-component>
  <input type="checkbox" :id="_uid" v-model="childModel" :value="value" />
  <label :for="_uid"><slot></slot></label>
</child-component>

рдореИрдВ рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддрд╛ рд╣реВрдВ?

_рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 1:_
рд╣рд▓ рдХрд┐рдпрд╛ред рдкреИрд░реЗрдВрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдЪрд╛рдЗрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдкреНрд░реЛрдк type="checkbox" рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВред

<parent-component>
  <child-component type="checkbox" v-model="parentModel" value="apple"  />
  <child-component type="checkbox" v-model="parentModel" value="orange" />
  <child-component type="checkbox" v-model="parentModel" value="banana" />
</parent-component>

рдлрд┐рд░ рдЖрдк {props: [ 'value' ]} рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдирд▓рд╛рдЗрди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдорд╛рди рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдШрдЯрдХ рдХреЛ change рдИрд╡реЗрдВрдЯ рднреЗрдЬреЗрдВред

<child-component>
  <input type="checkbox" :id="_uid" v-model="childModel" :value="value"
    @change="$emit('change', $event)"
  />
  <label :for="_uid"><slot></slot></label>
</child-component>

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ v-model рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЙрд╕рдХреЗ type рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╕рдВрдХрд▓рдХ рд╣реЛрдЧрд╛ рдЙрддреНрдкрдиреНрди checked рдкреНрд░реЛрдк рдФрд░ рдмрд╛рдБрдз рдПрдХ change рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ред

_рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2:_
рд╣рд╛рд▓рд╛рдВрдХрд┐, updated рдЬреАрд╡рди рдЪрдХреНрд░ рд╣реБрдХ v-model рдХрд╛рд░рдг рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╕реАрдзреЗ checked рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ change рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ v-model рдХреЗ рдорд╛рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рдореВрд▓ HTML рдЪреЗрдХрдмреЙрдХреНрд╕ рдШрдЯрдХ рдХрд╛)ред
рддреЛ, @yyx990803 , рдХреНрдпрд╛ рдЖрдк v-model рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рдж change рдИрд╡реЗрдВрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдпреБрдирд╕реБрди-рд╕реАрдПрди рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдореВрд▓реНрдп, рдПрд▓рд╛ рд╡реИрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рдирд╛ рдерд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╡реА-рдореЙрдбрд▓ 'рдЗрдирдкреБрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдирд╛ рдерд╛ ' рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ред

@johnleider рдореИрдВрдиреЗ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ v-model рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред
рд╡реИрд╕реЗ, рдЖрдкрдХреЛ рд╕рдЦреНрдд рддрд░реАрдХреЗ рд╕реЗ рдореЙрдбрд▓ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХреЗрд╡рд▓ type рдкреНрд░реЛрдк рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдмрд▓реНрдХрд┐ рддрддреНрд╡ рдХреЗ рдЯреИрдЧрдирд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред рдЕрдиреНрдпрдерд╛, type рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреНрдп рдХрд╕реНрдЯрдо рдШрдЯрдХ рдЕрдкрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЙрдбрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

@thanosalexander рд╣рдордиреЗ рдЕрднреА рддрдХ рдХреЛрдИ рддрд╛рд░реАрдЦ рддрдп рдирд╣реАрдВ рдХреА рд╣реИ, рдирд╣реАрдВред рд╣рдордиреЗ рдЕрднреА 2.0.0-bet.2 рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рдмрдбрд╝реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдкреЗрд╢ рдХрд┐рдП рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЬрдм рддрдХ рд╣рдо рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддреЗ, рддрдм рддрдХ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рд▓рдЧреЗрдВрдЧреЗред

рдареАрдХ рд╣реИ..рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬрд╛рдКрдВрдЧрд╛ ..рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрд╕реНрддрдмрд▓ рдХреА рдУрд░ рдХрджрдо рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛! рдзрдиреНрдпрд╡рд╛рдж

рдбреЙрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? Vue рдХреЛ рдЬрд▓реНрджреА рдЕрдкрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдерд╛ рдФрд░ рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЕрдм v2 рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдбреЙрдХреНрд╕ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреА, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд░реАрдм рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж рдореИрдВ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдЪрд▓ рд░рд╣рд╛ рдЗрддрдирд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рд╡рд╛рд▓ рдХреНрдпреЛрдВ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ :)

2.0 рдореЗрдВ рдШрдЯрдХ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рдмрд╛рд╣рд░ рд╕рдВрдХреНрд░рдордг-рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?
https://github.com/vuejs/Discussion/issues/156

@ miljan-aleksic Docs 2.0 рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЕрднреА рднреА рдмреАрдЯрд╛ рдореЗрдВ рд╣реИрдВред ;)

рддрдм рддрдХ, рдЖрдк рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдкреНрд░рдЧрддрд┐ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ

@aristidesfl рдкрд╣рд▓реЗ рд╣реА рдХрд░ рдЪреБрдХрд╛ рд╣реИред рдореИрдВ

@ miljan-aleksic @LinusBorg рдиреЗ рдЬреЛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рд╕реНрд░реЛрдд рднреА рдмреАрдЯрд╛.2 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╣рдХрд░реНрдореА рд╕рдореАрдХреНрд╖рд╛ рдЕрднреА рдмрд╛рдХреА рд╣реИ, рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЫреЛрдЯреЗ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ

рд╣рдо рдЗрд╕ рдмрд╛рдд рд╕реЗ рднреА рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг Vue рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдЯреАрдо рдХреЗ рдбреИрди рдЕрдмреНрд░рд╛рдореЛрд╡ рднреА рд╣рдорд╛рд░реЗ рдбреЙрдХреНрд╕ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред ЁЯШД рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдХрд┐ 2.0 рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ _рдФрд░ рднреА рдмреЗрд╣рддрд░_ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдмреАрдЪ...

рдЬреЛ рдХреЛрдИ рднреА 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд▓реНрджреА рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдлреАрдЪрд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдЕрджреНрдпрддрд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рд▓реЗрдЦрди рдореЗрдВ рдореЗрд░реЗ рдкреНрд░рд╛рдердорд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЬреИрд╕реНрдореАрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рддреЛ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдХрд╛рдлреА рдкрдардиреАрдп рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж @chrisvfritz , рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реАред рдореИрдВ рдирдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдПрдХ рд╢реЙрдЯ рджреВрдВрдЧрд╛, рдЗрд╕реЗ рдПрдХ WIP рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред Vue 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрдВрднреАрд░ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ;)

createElement рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд░рдгреА рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ snabbdom рдХрд░рддрд╛ рд╣реИ) рдХреНрдпрд╛ рдХреЙрд▓ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП snabbdom рдореЗрдВ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ

{on:{click: [function, dataToPass]}}

рдФрд░ function рдХреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ dataToPass рдорд┐рд▓реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ vuejs 2 рдмреАрдЯрд╛ 2 Uncaught TypeError: arr[i] is not a function рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рддрддреНрд╡ рдмрдирд╛рдиреЗ рд╕реЗ рдЪрд╛рд▓реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдФрд░ рдИрд╡реЗрдВрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@dubcanada Vue 2.0 рдореЗрдВ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ snabbdom рд╕реЗ рдЕрд▓рдЧ рд╣реИ - рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд░рдгреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╕ рдПрдХ рд╣реА рдИрд╡реЗрдВрдЯ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕реНрд▓реЙрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рддрд┐рдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдорд╛рдирдХ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди Vnodes рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрдкрд╛рдп рд╣реИ?

@ miljan-aleksic рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рддрддреНрд╡ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ innerHTML , рдлрд┐рд░ рддрддреНрд╡ рдХреЛ display: none рд╕рд╛рде рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдЫреБрдкрд╛рдПрдВред

рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЕрдВрддрд┐рдо рдЖрдЙрдЯрдкреБрдЯ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред рдореИрдВ рдПрдХ рдШрдЯрдХ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрдкрдиреА рдмрд╛рд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ pre рдЯреИрдЧ рд╕реЗ рд▓рдкреЗрдЯреЗрдЧрд╛ рдФрд░ HTML рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░реЗрдЧрд╛ред

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдореВрд▓ рд╕реЗ рднрд┐рдиреНрди рддрддреНрд╡ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЖрдкрдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ _how_ рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рди рдХрд┐ рд╕рд╛рдордЧреНрд░реА рд╕реНрд╡рдпрдВред рдореИрдВ рдкрд╛рда рдХреЛ рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ (рдпрд╛ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ, _рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ_ рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╣реИ), рдлрд┐рд░ рдЗрд╕реЗ рдмрдЪреНрдЪреЗ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛, рдЬреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдПрдХ рд╣рдЬрд╛рд░ рдмрд╛рд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рд╡реИрд╕реЗ рднреА рдЖрд╕рд╛рдиред

рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ

v-on рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп $arguments рдЪрд░ рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдпрд╣рд╛рдВ рдЙрд╕ рдмрджрд▓рд╛рд╡ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдПрдХ рдмрдЧ рдпрд╛ рд▓рд╛рдкрддрд╛ рд╕рдВрджрд░реНрдн рд╣реИ?

@ рдорд┐рд▓рдЬрди-рдПрд▓реЗрдХреНрд╕рд┐рдХ рдмрд╕ arguments ред

рдПрдХ PHP рджреЗрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдореЗрд░реЗ рдЬреИрд╕рд╛) ... рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред рдЬрд╝реЛрд░ - рдЬрд╝реЛрд░ рд╕реЗ рд╣рдВрд╕рдирд╛!

рд╕реНрдХреЙрдЯ

@ yyx990803 , @smolinari рдореИрдВ рд╣реВрдБ ... рдФрд░ рдЕрдм рдПрдХ рд╢рд░реНрдорд┐рдВрджрд╛ рд╣реВрдБ рд╣рд╛рд╣рд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░ рд▓реА рд╣реИ... рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдареАрдХ рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЕрдкрдирд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рдореИрдВ рдПрдХ рдФрд░ "рдореБрджреНрджреЗ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯрд┐рдХрдЯ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ ... ref рдХрд░рддреЗ рд╕рдордп рдкрдВрдЬреАрдХреГрдд рдШрдЯрдХ рдпрд╛ рддрддреНрд╡ рддреБрд░рдВрдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

<button ref="button"...></button>
<foo :connect="$refs.button"></foo>

рдЬрд┐рд╕ рд╕рдордп рдлреВ рдХреЛ $refs.button рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдЕрднреА рднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред Vue 1 рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдмрд╛рд░ рдореБрдЭреЗ рдХреНрдпрд╛ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

рдЖрдк рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдбреАрдУрдПрдо рддрддреНрд╡реЛрдВ рдпрд╛ рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ...

рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рд╣реИ? рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдмрдЯрди (рдЯреНрд░рд┐рдЧрд░) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рджреЛрдиреЛрдВ рд╕реНрд╡рддрдВрддреНрд░ рдШрдЯрдХ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореИрдВ рд╕реАрдзреЗ рд╕рдВрджрд░реНрдн рдкрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ miljan-aleksic рдЙрдиреНрд╣реЗрдВ рд░рд╛рдЬреНрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реИ:

  • рдЙрдирдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рдЦреБрд▓рд╛/рдмрдВрдж рд░рд╛рдЬреНрдп рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рдорд╛рддрд╛-рдкрд┐рддрд╛ рд░рд╛рдЬреНрдп рдХреЛ рдПрдХ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
  • рдорд╛рддрд╛-рдкрд┐рддрд╛ рд░рд╛рдЬреНрдп рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреА рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ

рдЗрд╕ рддрд░рд╣ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдФрд░ рдмрдЯрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреЛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреБрд░рд╛рдиреА рдЖрджрддреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ jQuery рдпрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореБрдЭреЗ рджреЛрд╖ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП? :рдбреА

рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЗрд╡рд╛рди, рд╕рд╣реА рд╣реИред рдореИрдВ рдЙрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдКрдВрдЧрд╛, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдПрдХреАрдХрд░рдг рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореВрд▓ рдШрдЯрдХ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛, рди рдХреЗрд╡рд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд▓реНрдХрд┐ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрдм рдмрд╛рд╣рд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреНрд░реЙрдкрдбрд╛рдЙрди рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред рдХрдИ рдШрдЯрдирд╛рдПрдВ рдФрд░ рдХрд╛рдордХрд╛рдЬ рдЬреЛ рдбреНрд░реЙрдкрдбрд╛рдЙрди рд╣рд▓ рдХрд░ рд░рд╣реЗ рдереЗред

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

рдпрд╣ рдЕрднреА рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЖрдк рдмрд╛рд╣рд░реА рдХреНрд▓рд┐рдХ рдЖрджрд┐ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░реЙрдкрдбрд╛рдЙрди рдШрдЯрдХ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ addEventListener('body', ... ) рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреЗрд╡рд▓ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ 'рдХрд░реАрдмреА' рдШрдЯрдирд╛ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдмрд╛рд╣рд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рд╣рд╛рдБ рд╣рд╛рдБред рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЛ рд░рд┐рдлрд▓реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп :) рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╕рдореБрджрд╛рдпред

рдПрдХ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ v-model рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП createElement ? рдореИрдВрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА, рдФрд░ ... рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рд╣реИред рдореБрдЭреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╣рд╛рдВ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рд╕рдордЭ рдирд╣реАрдВ рдереАред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рд╕рдВрдХрд▓рди-рд╕рдордп рдирд┐рд░реНрджреЗрд╢ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд╣реА рд▓реМрдЯреЗрдВред

@blocka рдпрджрд┐ рдЖрдк render рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рд╕рдордХрдХреНрд╖ рддрд░реНрдХ рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП v-if рд╕рд┐рд░реНрдл рдПрдХ рдЯрд░реНрдирд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, v-for рдПрдХ array.map() рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ... рдФрд░ v-model (рд╕рд╛рдорд╛рдиреНрдп <input> рддрддреНрд╡ рдкрд░) ) рдХрд╛ рдЕрдиреБрд╡рд╛рдж value рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдФрд░ input рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@ yyx990803 рдореБрдЭреЗ рдпрд╣реА рд▓рдЧрд╛ред рдореИрдВ рд╢рд╛рдпрдж рдПрдХ рдПрдЪрдУрд╕реА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ (рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╢рд░реНрдд рд╕реМрдВрдк рд░рд╣рд╛ рд╣реВрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ

Vue 1 рдХреЗ рд╕рд╛рде vuex рдмрдирд╛рдо redux рдХреЗ рджреЛ рдШреЛрд╖рд┐рдд рдлрд╛рдпрджреЗ рдереЗред

  1. рдкреНрд░рджрд░реНрд╢рди рдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ vuex рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдЬреЛ vue рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдкреБрд░рд╛рдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдХрд░ "рдбрд░реНрдЯреА рдЪреЗрдХрд┐рдВрдЧ" рдХреЗ рдмрд░рд╛рдмрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)
  2. Vuex рдЕрдзрд┐рдХ "рдЬрд╛рдЧрд░реВрдХ" рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ Vue рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╣реИ

рдХреНрдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ 1 рдореЗрдВ рд╕реЗ рдХреБрдЫ рдпрд╛ рд╕рднреА рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ?

@blocka рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордЧреНрд░ рдкреВрд░реНрдг рдЕрднреА рднреА Redux рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

2.0 рдореЗрдВ рдЬреЛ рдмрджрд▓рд╛ рд╡рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреА рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рд╣реИред рдЖрдЗрдП рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

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

рдЖрдо рддреМрд░ рдкрд░ 2.0 рдХреЗ рд╕рд╛рде, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ (1.x рдХреА рддреБрд▓рдирд╛ рдореЗрдВ)

  • рдЫреЛрдЯреЗ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдзреАрдорд╛ (рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдмрд╣реБрдд рддреЗрдЬрд╝) рдЕрдкрдбреЗрдЯ
  • рдордзреНрдпрдо рд╕реЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рд▓реАрдирддрд╛рдкреВрд░реНрд╡рдХ рддреЗрдЬрд╝ рдЕрдкрдбреЗрдЯ
  • рдХрд╛рдлреА рддреЗрдЬ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдВрдбрд░

рдЕрд░реЗ,
рдореБрдЭреЗ рдПрдирд┐рдореЗрдЯреЗрдб.рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред

<transition enterClass="fadeIn" leaveClass="fadeOut" class="animated" mode="out-in"> 
  <router-view keep-alive></router-view> 
</transition>

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рдЖрдкрдХреЗ рдкреНрд░реЛрдк рдирд╛рдо рдЧрд▓рдд рд╣реИрдВред

рдХреИрдорд▓рдХреЗрд╕ рдмрдирд╛рдо рдХреЗрдмреИрдк-рдХреЗрд╕ рдЕрднреА рднреА 2.0 рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

<transition enter-class="fadeIn" leave-class="fadeOut" class="animated" mode="out-in"> 
  <router-view keep-alive></router-view> 
</transition>

@LinusBorg рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд▓реА рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░реА рдПрдХ рдЫреЛрдЯреА рд╕реА рдмреЗрд▓рд╛ рд╣реИред рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдХреНрд░рдордг рдФрд░ рдирд╛рдо рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
https://jsfiddle.net/z0nyfba0/

рдХрд┐рд╕реА рдШрдЯрдХ рдкрд░ v-model рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХреНрдпрд╛ рдШрдЯрдХ рдХреЗ рдкрд╛рд╕ v-model рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рдВрд╢реЛрдзрдХ рдХреА рджреГрд╢реНрдпрддрд╛ рд╣реЛрдЧреА?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рд╣реИ рдЬреЛ input рдИрд╡реЗрдВрдЯ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдм рд╡рд╣ рдИрд╡реЗрдВрдЯ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ lazy рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

@fergaldoyle рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд╕реНрдЯрдо рддрддреНрд╡ рдкрд░ рд╡реА-рдореЙрдбрд▓ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЖрд▓рд╕реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ change рдИрд╡реЗрдВрдЯ рдХреЛ рдЗрдирдкреБрдЯ рд╕реЗ рдмрд╛рдБрдзрдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ https://jsfiddle.net/cynhtLty/1/

@calebboyd

https://jsfiddle.net/Linusborg/z0nyfba0/1/

  1. рдЖрдкрдХреЛ enter-active-class рдФрд░ leave-active-class
  2. рдЖрдкрдХреЛ class="animated" рдХреЛ <router-view> рддрддреНрд╡ рдкрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

@fergaldoyle 1.0 рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрддрд╛ рд╣реИ lazy , рд╡реА рдореЙрдбрд▓ рдмрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА change рдХреЗ рдмрдЬрд╛рдп input ред рдЖрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ lazy рджрд┐рдП рдЧрдП рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП input рдпрд╛ change рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг v-for рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реБрдП рдЕрдкрдирд╛ рд╕рд┐рд░ рдЦреБрдЬрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ value рдмрд╛рдЗрдВрдбрд┐рдВрдЧ select рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП 2.0 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ: https://jsfiddle.net/972eL5fL/

рд╕рд╛рде рд╣реА рдпрд╣ рд╢рд╛рдпрдж рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ "i in 10" рдЬреИрд╕реА рд╡реА-рдХреЗ рд▓рд┐рдП рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ 0 рдХреЗ рдмрдЬрд╛рдп 1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдЬреИрд╕реЗ 1.0 рдореЗрдВред

@lauritzen

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реА рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реБрдП рдореИрдВ рдЕрдкрдирд╛ рд╕рд┐рд░ рдЦреБрдЬрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ 2.0 рдореЗрдВ рдЪреБрдирд┐рдВрджрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ: https://jsfiddle.net/972eL5fL/

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЖрдкрдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрд╡рд╛ рдШреЛрд╖рдгрд╛

рд╣рдо рдЖрдкрдХреЛ рдордВрдЪ рдкрд░ рдпрд╛ рдЧрдЯрд░ рдкрд░ рд╕рдорд░реНрдерди рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирдП рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рд╛рде рд╕реЗ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред

рд╢реБрдХреНрд░рд┐рдпрд╛ред

рдХреНрдпреЛрдВ vm.$get рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Vue.get рдХреНрдпреЛрдВ рдирд╣реАрдВ?
рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рднрд╛рд╡реЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ
var exp = 'entity.type.name' // this is generated in runtime return vm.$get(exp)

@iagafonov рдРрд╕реЗ рдмрд╣реБрдд рд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реИрдВ рдЬрд╣рд╛рдБ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЛрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд▓реЙрд╢:

import get from 'lodash/get';
Vue.prototype.$get = get

//in any component
var value = this.$get(this.someObject,'some.path.to.value')

(рдмреЗрд╢рдХ рдЖрдк рдЗрд╕реЗ "рд╡рд░реНрдЧ рд╡рд┐рдзрд┐" рдХреЗ рд░реВрдк рдореЗрдВ Vue.get() рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╛ рдмрд╕ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЖрдкрдХреА рдкрд╕рдВрдж)

@LinusBorgред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд▓реЙрд╢ рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред
рджреВрд╕рд░рд╛ рд▓реЙрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзреАрдорд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рди-рдЯрд╛рдЗрдо рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред vue рдирдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди (parseExpression рджреНрд╡рд╛рд░рд╛) рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдХреЛрдк рд╕реЗ рдмрдВрдзрд╛ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рдорд╛рдореВрд▓реА рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдмреЗрд╢рдХ, $ рд╣рд░ рдмрд╛рд░ рд╕рдВрдХрд▓рди рд╕рдорд╛рд░реЛрд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)ред рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ parseExression рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Vue.util рдореЗрдВ рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛред

@iagafonov this.$get рднреА рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкрде рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдореВрд▓реНрдп рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдпрджрд┐ рдкрде рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред рд╕рд╛рде рд╣реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреВрд░реНрдг рдЕрдВрддрд░ рдирдЧрдгреНрдп рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд▓реЙрд╢ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣рд╛рдВ рдмрд╣реБрдд рд╕реЗ рдЕрдиреНрдп рдкрде рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред рдпрд╣ рдЕрдм Vue рдХреА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдм рдмрд╣рд┐рд╖реНрдХреГрдд рдкрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ?

рдХреНрдпрд╛ рдЖрдк рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдкреИрд░рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рддрдм рдЖрдк vnode рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдмрд╛рдЗрдВрдбреЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ

<button v-test="123" color="red" type="button">click me</button>

bind (el, binding, vnode) {
 // vnode.data.attrs -> { color: 'red' }
}

@sqal , рдХреНрдпрд╛ рдпрд╣ рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдХреЗ рдЙрддреНрддрд░ рдореЗрдВ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдореИрдВ рдкрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдЬреИрд╕реЗ рдЖрд▓рд╕реА, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдмрд╣рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2.0 рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдпрд╣ <input type="text" v-model="msg" number> (рд╕рдВрдЦреНрдпрд╛ рдпрд╣рд╛рдБ рдПрдХ рдкрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ)ред рдкрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдореИрдВ рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@ рдкреА-рдПрдбрдореНрд╕ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд╡реЗ рдЕрдм рд╕рдВрд╢реЛрдзрдХ рд╣реИрдВ <input v-model.number="msg">

рдореИрдВ Vue 2.0 рдореЗрдВ рдкрд╛рддрд╛ рд╣реВрдВ, рдЬрдм рдкреНрд░реЙрдкреНрд╕ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ 2.0 shouldComponentUpdate рдХреЛ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред

@ yyx990803 рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЕрдм The lazy and number params are now modifiers рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред

@HeChenTao Evan рдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рд╕рдордЭрд╛рдпрд╛ рд╣реИ https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9#.pc5c8urbv

@HeChenTao рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди "рд╣рдореЗрд╢рд╛" рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

  • рдЗрд╕рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг, Vue рдХреЛ shouldComponentUpdate рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • рдЬрдм рдПрдХ рдШрдЯрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди, vdom рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред
  • рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ рдФрд░ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ _not_ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

рдореЛрдмрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА рдпрд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдХреЛ shouldComponentUpdate рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, Vue рдХреА рддрд░рд╣, mobx рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЕрд╡рд╕реНрдерд╛ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИред рдЕрдЧрд░, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЖрдкрдиреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░рд╛рдЬреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЦрд░реАрджрд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреА рдкреАрда shouldComponentUpdate ред

рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдерд┐рддрд┐ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╡реНрдпреВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореИрдЪ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рддрд░реНрдХ рдореЗрдВ children рдкреНрд▓рд╕ slots ред рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рдереЛрдбрд╝рд╛ рднреНрд░рдо рд╣реЛрддрд╛ рд╣реИ рдХрд┐ children() рдФрд░ slots().default рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреНрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рд╕реНрд▓реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ 'рдмрдЪреНрдЪреЗ' рдЖрд▓рд╕реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдп рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрдирдХреЗ рдмрдЪреНрдЪреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдИрдПрдордПрдЪрдУ, рдмрдЪреНрдЪреЛрдВ рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрд▓реЙрдЯ рдХреЛ рдЖрд▓рд╕реА рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

@blocka рдЖрдк

@ miljan-aleksic children рдХрдЪреНрдЪрд╛ рд╣реИ (рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдорд┐рд▓рддрд╛ рд╣реИ рдЪрд╛рд╣реЗ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕ рд╕реНрд▓реЙрдЯ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП), slots рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмрдЪреНрдЪреЛрдВ рдкрд░ slot рдирд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж @yyx990803ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рднреНрд░рдо рд╕реЗ рдмрдЪреЗрдВ, @chrisvfritzред

@ рдорд┐рд▓рдЬрди-рдЕрд▓реЗрдХреНрд╕рд┐рдХ рдореИрдВ рдПрдХ рдиреЛрдЯ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рдореИрдВ

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

рдЬрдм рдХреЛрдИ рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб / рдкрд░рд┐рдХрд▓рд┐рдд рдЧреБрдг рдХрд┐рд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, рддреЛ Vue рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реАрдорд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдХреБрдЫ рдмреЗрдХрд╛рд░ рд╕реНрдЯреЛрд░ рдЖрдпрд╛рддреЛрдВ рдХреЛ рдХрд╣рд╛рдВ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@ yyx990803 , рдШрдЯрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ $context рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? $parent рдпрд╛ $root рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрдХреНрд╕рд░ рдЙрд╕ рд╕рдВрджрд░реНрдн рддрдХ рдкрд╣реБрдБрдЪрддреЗ рдкрд╛рдпрд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ $vnode рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдЕрд╕рд▓ рдореЗрдВ рдпрд╣ рд╕рдВрджрд░реНрдн рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

@ miljan-aleksic рдХреНрдпрд╛ рдЖрдк рдЙрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдЕрдХреНрд╕рд░ рд╕рдВрджрд░реНрдн рддрдХ рдкрд╣реБрдВрдЪ рд░рд╣реЗ рд╣реИрдВ?

@Kingdaro рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

@ рдкреА-рдПрдбрдореНрд╕ рдЖрдк рдЕрднреА рднреА Array.prototype.filter рд╕рд╛рде рдПрдХ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@chrisvfritz , рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╛ рдкрд╣рд▓реЗ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдлрд░реА рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ Vue рд╕реНрд╡рдпрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдШрдЯрдХ рдХреЗ рднреАрддрд░ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред $vnode рддрдм рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдШрдЯрдХ рдорд╛рдЙрдВрдЯ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдЕрдм рддрдХ)ред

рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рд╕рдВрддреЛрд╖ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдПрдХ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐ рдЬрд╣рд╛рдВ $context рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдЬрдм рдПрдХ рдШрдЯрдХ рдХреЛ рджреВрд╕рд░реЗ рдШрдЯрдХ рдХреА рдЬрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

<template>
  <Foo>
    <child/>
  </Foo>
</template>
<script>
{ name: 'Bar' ... }
</script>

рдЙрджрд╛рд╣рд░рдг рдореЗрдВ child.$parent рдмрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдШрдЯрдХ рдлреВ рд▓реМрдЯрд╛рдПрдЧрд╛, рдЬреЛ рд╕рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдмрдЪреНрдЪреЗ рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рд╕реАрдзрд╛ рд╕рдВрдЪрд╛рд░ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@ miljan-aleksic рдореИрдВ рдЗрд╕реЗ @ yyx990803 рдкрд░ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ $parent , $context рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╢рд╛рдпрдж 99.9% рд╕рдордп рдЧрд▓рдд рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдХрднреА рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ v-show рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реИред рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдореЛрдбрд▓ рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ 'рдбрд┐рд╕реНрдкреНрд▓реЗ: рдХреЛрдИ рдирд╣реАрдВ' рд╣реИред рдЬрдм v-show рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рд╕реАрдПрд╕рдПрд╕ рд╡рд╛рд▓реЗ рддрдм рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред рдореИрдВ CSS (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ) рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рдФрд░ рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Vue рд╕рдВрдХреНрд░рдордг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

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

@chrisvfritz , рдпрд╣ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдВрджрд░реНрдн рддрддреНрдХрд╛рд▓ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рд╕реНрд▓реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдВрджрд░реНрдн рдШрдЯрдХ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп?

2.0.0-рдмреАрдЯрд╛7 рдореЗрдВ "<" (рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдПрдЪрдЯреАрдПрдордПрд▓-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╡рд░реНрдг) рд╣реЛрдиреЗ рдкрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╕рдВрдХрд▓рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

https://jsfiddle.net/x0r59ur1/

рдпрд╣ 1.0.26 рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред

"<" рдХреЗ рд╕рд╛рде "<" рд╕реЗ рдмрдЪрдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

@GlurG рдХреЗ рдареАрдХ рд╕реЗ "<" рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

@ yyx990803 , рдпрджрд┐ рдореИрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЙрдирдХрд╛ рд░рд╛рдЬреНрдп рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдбреЙрдХреНрд╕ рдХреЗ рдмрд╛рдж рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдШрдЯрдХ рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдПрдХ рдЯреИрдм рдШрдЯрдХ рдХрд╣реЗрдВ рдФрд░ рдЗрд╕рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдХреНрд░рдордг рдХрд░реЗрдВред рдореБрдЭреЗ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ :(

<tabs>
  <transition>
    <tabs-item>Content 1</tabs-item>
    <tabs-item>Content 2</tabs-item>
    <tabs-item>Content 3</tabs-item>
  <transition>
</tabs>

@ miljan-aleksic <transition> рдХреЗрд╡рд▓ рдПрдХрд▓ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╣реИред рдЖрдкрдХреЛ рдХрдИ рдорджреЛрдВ рдХреЗ рд▓рд┐рдП <transition-group> ред

@ yyx99803 , рдиреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рдВрдХреНрд░рдордг-рд╕рдореВрд╣ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░/рд╣рдЯрд╛рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рддреЗ рд╕рдордп рдШрдЯрдХ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреЗ, рд░рд╛рдЬреНрдп рдЦреЛ рджреЗрдВрдЧреЗред рдПрдХ рдЯреИрдм рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рджрд┐рдЦрд╛рдирд╛ рд╣реИ, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ :)

@ yyx990803 , @LinusBorg рдореИрдВ рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХреНрд░рдордг рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ keep-alive рд╕рдВрдХреНрд░рдорд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдореИрдВрдиреЗ jsfiddle рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдШрдЯрдХ рдХреИрд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

@ yyx990803 ,

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

@ рдорд┐рд▓рдЬрди-рдЕрд▓реЗрдХреНрд╕рд┐рдХ рдПрдХ рдкреИрдЯреНрд░рд┐рдпрди рдЕрднрд┐рдпрд╛рди рд╡рд┐рдВрдХ рд╡рд┐рдВрдХ рд╣реИ ред

рдЖрдк рдХреНрдпрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ @phanan , рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВред рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╡рд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЬреИрд╕реЗ рд╣реА рдХрдВрдкрдиреА рдХреЗ рдЙрддреНрдкрд╛рдж рдкрд░рд┐рдгрд╛рдо рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕рдорд░реНрдерди рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛред

ready рдЬреАрд╡рдирдЪрдХреНрд░ рд╣реБрдХ рдХреЛ mounted рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рд▓реЗрдХрд┐рди рдЪреИрдВрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдШрдЯрдХ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЫрд┐рдЯрдкреБрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдШрдЯрдХ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ jQuery рдШрдЯрдХреЛрдВ (рдЬреИрд╕реЗ рдЪрдпрди) рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореБрдЭреЗ рдХрд┐рд╕ рдЬреАрд╡рдирдЪрдХреНрд░ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ "рддреИрдпрд╛рд░" рд╣реБрдХ рдЗрд╕ рддрд░рд╣ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

function mounted() {
  Vue.nextTick(() => {
    //...
  });
}

@GlurG рд╣рд╛рдБ, рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рд╡реИрд╕реЗ, рдпрд╣ рднреА рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ 1.0 рдореЗрдВ ready'() рд╕рд╛рде nessessariy рдерд╛ред

рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╣реБрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рднреА
рдЗрд╕ рдкрд╛рд░... 1.0 рдореЗрдВ рднреА, рдФрд░ raf to . рдХреЗ рд╕рд╛рде рд▓реВрдкрд┐рдВрдЧ рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдпрд╛
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдбреЛрдо рдореЗрдВ рд╣реИ, рдЖрджрд┐ред
10 рдЕрдЧрд╕реНрдд 2016 рдХреЛ рд╢рд╛рдо 6:26 рдмрдЬреЗ, "рдереЙрд░реНрд╕реНрдЯрди рд▓реБрдирдмреЛрд░реНрдЧ" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@GlurG https://github.com/GlurG рд╣рд╛рдВ, рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ,
рд╡рд╣ рднреА рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ 1.0 рдореЗрдВ рддреИрдпрд╛рд░ '() рдХреЗ рд╕рд╛рде nessessariy рдерд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/vuejs/vue/issues/2873#issuecomment -238903012, рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AACounAoI8p65soUrbdaiwteDXKgMGJks5qee25gaJpZM4IedHC
.

рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЦреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдЪрд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рд╛рджреЗ рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ v-model рдЬрд┐рд╕рдореЗрдВ рдЖрдИрдИ 9 рдХреЗ рд▓рд┐рдП рдХрд╛рдордХрд╛рдЬ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдЕрдиреНрдп рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

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

@ miljan-aleksic рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рд╣рдЯрд╛ рджреА рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╡реА-рд╢реЛ рдпрд╛ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рдБ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╡реА-рдореЙрдбрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╣рд╛ рдерд╛, рдЗрдирдкреБрдЯ рдЬреЛрдбрд╝рдиреЗ/рд╢реНрд░реЛрддрд╛ рдмрджрд▓рдиреЗ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдирдпрд╛ activated рд╣реБрдХ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдПрдХ рдорд╛рд░реНрдЧ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ router-view рд╕рдХреНрд░рд┐рдп/рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ? Im рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИред

@wprater рдирд╣реАрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ <keep-alive> рдФрд░ рдХреБрдЫ рдирд╣реАрдВред

@ yyx990803 рдореИрдВ рдЕрдкрдиреЗ рд░рд╛рдЙрдЯрд░-рд╡реНрдпреВ рдХреЛ рдПрдХ рдЬреАрд╡рд┐рдд рдореЗрдВ рд▓рдкреЗрдЯ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рд╡рд┐рдХреГрдд рджреГрд╢реНрдп рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рд╣реБрдХ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред mounted рдФрд░ рди рд╣реА activated рдХрд╣рд▓рд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдбреЛрдо рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред

@wprater рдХреГрдкрдпрд╛ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред рдпрджрд┐ рдХреЛрдИ рдмрдЧ рд╣реИ, рддреЛ рдкреНрд░рдЬрдирди рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рд░реЗрдкреЛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред

рдХреНрдпрд╛ Vue JSX рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдкреНрд░реЗрдб рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдХрд░рддрд╛ рд╣реИ рдФрд░ @yyx990803 рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ <Component {...{ props } }></Component> рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@blocka рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо props рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдереА

@yyx990803
components рд╡рд┐рдХрд▓реНрдк рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ 1.x рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬреИрд╕реЗ

var Parent = Vue.extend({
  name: 'parent',
  template: '<div><slot></slot></div>'
})

var Child = Vue.extend({
  name: 'child',
  template: '<span>hello</span>'
})

new Vue({
  el: '#app',

  components: [
    Parent,
    Child
  ],

  replace: false,

  template: '<parent><child></child></parent>'
})

рдпрд╣ рдмрдЧ рд╣реИ?

@ QingWei-Li рд╡реЗ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрднреА рднреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рдереАред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ ES2015 рдХреЗ рд╕рд╛рде рдЖрдк рдХреЗрд╡рд▓ components: { Parent, Child } рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реБрдЭрд╛рд╡,
рдХреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╣рдо v-foreach рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рд╣рдо v-for ред

рдЬреЛ PHP рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ JQ рдореЗрдВ .each рдпрд╛ JS рдореЗрдВ foreach рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ

@ ctf0 рд╣рдо рдЖрд░рд╕реА рдЪрд░рдг рдореЗрдВ рд╣реИрдВ, рдПрдкреАрдЖрдИ рдЕрдм рдФрд░ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рдФрд░ рд╣рдо рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп рдирд╣реАрдВ рджреЗрдВрдЧреЗред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ v-for="item in items" рдХрд╛ рдорд╛рдирд╕рд┐рдХ рдЙрдкрд░ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛ рд╕рдХреЗред

рдЗрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рдШрдЯрдХ рд╣реИ (рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдпреВрдЖрдИ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ), рдЬреЛ рдХреНрд▓рд╛рд╕рд┐рдХ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдирд╡ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдирд╛рдВрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдЬреБрд▓рд╛рдИ 10, 2016")ред V1.0 рдХреЗ рд╕рд╛рде, рдореИрдВ рдЙрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЙрдЪрд┐рдд рддрд┐рдерд┐ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ-рддрд░рдлрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рд╕реАрдзреЗ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдерд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдлрд┐рд▓реНрдЯрд░ рдЕрдм рд╡реА-рдореЙрдбрд▓ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдореИрдВ рдЕрдм v2.0 рдореЗрдВ рд╡рд╣реА рдХрд╛рдо рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рдж

@shadowRR рдХреНрдпрд╛ рдХреБрдЫ рдХреЛрдб рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

@ рдкреА-рдПрдбрдореНрд╕ рдЬрд╝рд░реВрд░ред рд╣реЗрдпрд░ рдпреВ рдЧреЛред

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

Vue.filter( 'formatDate', {
        read( date ) {
            return date;
        },
        write( date ) {
            if( !date ) return null;
            return moment( date, 'D MMMM YYYY' ).format( 'YYYY-MM-DD' );
        }
    } );

рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдШрдЯрдХ рдкрд░ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реВрдВрдЧрд╛ (рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ рдореЗрд░реА рддрд╛рд░реАрдЦ рдХреЛ рдорд╛рдирд╡ рдкрдардиреАрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ)

<div class="required field">
        <label>Start date</label>
         <div class="ui calendar">
                 <div class="ui input left icon">
                      <i class="calendar icon"></i>
                      <input v-model="section.start | formatDate" type="text">
                 </div>
         </div>
</div>

рдореИрдВ рдпрд╣рд╛рдВ @yyx990803 рдХреА рдкреЛрд╕реНрдЯ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: https://github.com/vuejs/vue/issues/2756 рдЬрд╣рд╛рдВ рд╡рд╣ v-model рдкрд░ рджреЛ-рддрд░рдлрд╝рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢реНрди рдпрд╣рд╛рдВ рдкреВрдЫрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: http://forum.vuejs.org/

рдореИрдВ рдЙрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕реЗ рджреЗрдЦрдиреЗ рд╡рд╛рд▓рд╛, рдзрдиреНрдпрд╡рд╛рдж;)

рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ рдирдП рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рд╣реБрдХ рдореЗрдВ рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реИред
рдЕрдЧрд░ рдореИрдВ рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдмрдирд╛рдП рдЧрдП рдФрд░ рд╣реБрдХ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪреЗрдХ рдФрд░ рд▓реЙрдЬрд┐рдХреНрд╕ рдЬреЛрдбрд╝реЗрдВ?
Vue 1.x рдореЗрдВ рдореИрдВ рд╕рдВрд▓рдЧреНрди рдФрд░ рдЕрд▓рдЧ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рд▓реЗрдХрд┐рди 2.0 рдореЗрдВ рдорд╛рдЙрдВрдЯреЗрдб рд╣реБрдХ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рдЕрдирдорд╛рдЙрдВрдЯ рд╣реБрдХ рдирд╣реАрдВ рд╣реИред рдереЛрдбрд╝рд╛ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдирдорд╛рдЙрдВрдЯ рд╣реБрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

@ f15gdsy mounted рдореЗрд▓ рдЦрд╛рддреА рд╣реИ destroyed ред 2.0 рдореЗрдВ рдХреЛрдИ attached / detatched рдХрд╛рдЙрдВрдЯрд░ рдкрд╛рд░реНрдЯреНрд╕ рдирд╣реАрдВ рд╣реИрдВ - рдЖрдкрдХреЛ рдЗрди-рдбреЛрдо рд╕реНрд╡рдпрдВ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдИрд╡реЗрдВрдЯ рдЗрди-рдбреЛрдо/рдСрдлрд╝-рдбреЛрдо рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ mounted рдФрд░ beforeDestroy рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВред

рдЬрдм рдХрд┐рд╕реА рдХрд╕реНрдЯрдо рдШрдЯрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ v-on рдЕрдм рдХреЗрд╡рд▓ рдЙрд╕ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рдХреЛ рд╕реБрдирддрд╛ рд╣реИред (рдЕрдм DOM рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рд╕реБрдирддрд╛)

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдкреЛрд╕реНрдЯ рдорд┐рд╕ рдХрд░ рджреА рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдп рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рдШрдЯрдХреЛрдВ рдкрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рд░рд▓ рдХреНрд▓рд┐рдХ рдИрд╡реЗрдВрдЯ рдХреЛ рдмрд╣реБрдд рд╣реА рд╡рд░реНрдмреЛрдЬрд╝ рдмрдирд╛ рджреЗрдЧрд╛ ..

1.0:

<foo @click="bar"></foo>

2.0:

<div @click=bar>
  <foo></foo>
<div>

@fnlctrl , рдореВрд▓ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: @click.native="bar" ред

@ miljan-aleksic рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдВрд╢реЛрдзрдХ рдХреЛ рдЗрд╕ рдЕрдВрдХ рдореЗрдВ Directives -> v-on -> modifiers рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреНрдпрд╛ рдореИрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдЖ (1.x рдпрд╛ 2.x) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдХреЛрдЖ рдХреЗ рд╕рд╛рде vue-server-renderer рдкрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

@yyx990803

import Vue from 'vue'

Vue.component('expanding', {
  functional: true,
  render (createElement, { children }) {
    const data = {
      props: {
        name: 'expanding',
      },
      on: {
        beforeEnter ($el) {
          $el.classList.add('collapse')
          console.log('beforeEnter')
        },
        enter ($el) {
          $el.classList.remove('collapse')
          $el.classList.add('collapsing')
          $el.style.height = `${$el.scrollHeight}px`
          console.log('enter')
        },
        afterEnter ($el) {
          $el.classList.remove('collapsing')
          $el.classList.add('collapse', 'in')
          console.log('afterEnter')
        },
        beforeLeave ($el) {
          $el.classList.add('collapsing')
          $el.classList.remove('collapse', 'in')
          $el.style.height = 0
          console.log('beforeLeave')
        },
        leave ($el) {
          console.log('leave')
        },
        afterLeave ($el) {
          $el.classList.remove('collapsing')
          $el.classList.add('collapse')
          $el.style.display = 'none'
          console.log('afterLeave')
        }
      }
    }
    return createElement('transition', data, children)
  }
})
        <a href="#" :aria-expanded="showItem ? 'true' : 'false'" @click="showItem = !showItem">
          <span class="icon is-small"><i class="fa fa-table"></i></span>
          Tables
          <span class="icon is-small is-angle"><i class="fa fa-angle-down"></i></span>
        </a>
        <expanding appear="true">
          <ul v-show="showItem">
            <li>
              <router-link to="/tables/basic">Basic</router-link>
            </li>
            <li>
              <router-link to="/tables/handsontable">Handsontable</router-link>
            </li>
          </ul>
        </expanding>

рдПрдВрдЯрд░ рд╣реБрдХ рдХреЛ рдХреЙрд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?

@fundon рдЖрдкрдХреЛ рдордВрдЪреЛрдВ рдпрд╛ рдЧрдВрджреА рдЪреИрдЯ рдкрд░ рд╕рд╡рд╛рд▓ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд▓реЙрдХ рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐:

  1. рд╣рдо рдЕрдм RC рдореЗрдВ API рдлрд╝реНрд░реАрдЬрд╝ рдореЗрдВ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдм рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  2. рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдПрдлрдПрдХреНрдпреВ рдереНрд░реЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реЗрдВ, рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдлрд╝реЛрд░рдо рдпрд╛ рдЧрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЕрдкрдбреЗрдЯ : 2.0 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЕрдзрд┐рдХ рдирд┐рд╢реНрдЪрд┐рдд рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдирдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рджреЗрдЦреЗрдВ ред

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

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

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

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

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

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

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