рдпрд╣ рдПрдХ рдЬреАрд╡рдВрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред рдЕрдВрддрд┐рдо рдЕрджреНрдпрддрди: 08/17/2016 2.0.0-рдЖрд░рд╕реА.2 рдХреЗ рдЕрдиреБрд╕рд╛рд░
рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдЯреНрд╕
рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдЕрдкрдЧреНрд░реЗрдб рдЯрд┐рдкреНрд╕ рд╣реИрдВ ред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╛рд░реНрд╕рд░ рдЕрдм DOM рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ ( <script type="text/x-template">
, рдЗрдирд▓рд╛рдЗрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдпрд╛ рд╕рд┐рдВрдЧрд▓-рдлрд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХрд▓рд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред ), рдЕрдм рдЖрдк 1.x рдореЗрдВ рдХрд┐рд╕реА рднреА el
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рддреЛ рдЖрдк рдЕрднреА рднреА рдЙрди рд╕реАрдорд╛рдУрдВ рдХреЗ рдЕрдзреАрди рд╣реЛрдВрдЧреЗред
рдХрдВрдкрд╛рдЗрд▓рд░ (рд╡рд╣ рднрд╛рдЧ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ) рдФрд░ рд░рдирдЯрд╛рдЗрдо рдХреЛ рдЕрдм рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рд╣реЛрдВрдЧреЗ:
vueify
рдпрд╛ vue-loader
рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рдиред[x] Vue.config.silent
v-on
рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХреБрдВрдЬреА рдЙрдкрдирд╛рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВредVue.config.unsafeDelimiters рдкрджрд╛рд╡рдирдд, v-html рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
[x] Vue.extend
el
рдкрд░ рдбреЗрдЯрд╛-рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ [рдПрдХреНрд╕] рдШрдбрд╝реА
[рдПрдХреНрд╕] рдПрд▓
рдкрджрд╛рд╡рдирдд рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ , рдШрдЯрдХреЛрдВ рдореЗрдВ рдЕрдм рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдореВрд▓ рддрддреНрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред
[x] init beforeCreate
рдЕрд▓рдЧ рдкрджрд╛рд╡рдирдд, рдКрдкрд░ рдХреЗ рд╕рдорд╛рди
[x] рдирд┐рд░реНрджреЗрд╢
ElementDirectives рдкрджрд╛рд╡рдирдд
[рдПрдХреНрд╕] рдорд╛рддрд╛-рдкрд┐рддрд╛
рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдФрд░ рдШрдЯрдирд╛ рдкреНрд░рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ
[рдПрдХреНрд╕] рд╡реАрдПрдоред $ рдбреЗрдЯрд╛
vm.$log рдкрджрд╛рд╡рдирдд, devtools рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
[рдПрдХреНрд╕] рд╡реАрдПрдоред$рдСрди
vm.$рдкреНрд░рд╕рд╛рд░рдг рдмрд╣рд┐рд╖реНрдХреГрдд, рдКрдкрд░ рдХреЗ рд╕рдорд╛рди
[x] рд╡реАрдПрдо.$рдЕрдЧрд▓рд╛ рдЯрд┐рдХ
vm.$рдирд┐рдХрд╛рд▓реЗрдВ рдкрджрд╛рд╡рдирдд
[рдПрдХреНрд╕] рд╡реАрдПрдоред $ рдорд╛рдЙрдВрдЯ
[рдПрдХреНрд╕] рд╡реАрдПрдоред$рдирд╖реНрдЯ
[рдПрдХреНрд╕] рд╡реА-рдкрд╛рда
{{{ }}}
рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ(value, index) in arr
, (value, key, index) in obj
$index
рдФрд░ $key
Vue.config.keyCodes
рдХреЗ рдмрдЬрд╛рдп Vue.directive('on').keyCodes
)ref
v-el рдкрджрд╛рд╡рдирдд (рд░реЗрдлрд░реА рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп)
[рдПрдХреНрд╕] <component>
<transition>
<transition-group>
<keep-alive>
<slot>
рдЖрдВрд╢рд┐рдХ рдмрд╣рд┐рд╖реНрдХреГрдд
[рдПрдХреНрд╕] рдХреБрдВрдЬреА
[рдПрдХреНрд╕] рд╕реНрд▓реЙрдЯ
[рдПрдХреНрд╕] рд░реЗрдВрдбрд░рдЯреЙрд╕реНрдЯреНрд░рд┐рдВрдЧ
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
рд╣реБрдХ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реИрдВ:
bind
рдмрд╛рдж рдЗрд╕реЗ рдЕрдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредbinding.value === binding.oldValue
рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЗ рднреА рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдбреЗрдЯ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдирд┐рд░реНрджреЗрд╢ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИредelementDirective
, рдирд┐рд░реНрджреЗрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рд╡рд┐рдХрд▓реНрдк рдЬреИрд╕реЗ acceptStatement
, deep
рдЖрджрд┐ рд╕рднреА рдкрджрд╛рд╡рдирдд рд╣реИрдВред
Vue 2.0 рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рд╣реИрдВ:
{{}}
рдЯреИрдЧ) рдХреЗ рдЕрдВрджрд░ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрддреАрдд рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рдпрд╛ рд╣реИ v-model
, v-on
рдЖрджрд┐ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ, рдФрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ v-for
рдпрд╣ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЙрд╕ рддрд░реНрдХ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рдХрд▓рд┐рдд рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
{{ 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
рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИредenter
рдФрд░ leave
рд╣реБрдХ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ cb
рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЕрдВрддрд┐рдо рд╕рдордп рдкрд░ рд╕реНрдкрд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдг рдЪрд╛рд╣рддрд╛ рд╣реИред<transition-group>
рдШрдЯрдХ
рд╕рднреА рдмрд╣реБ-рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдкреНрд░рднрд╛рд╡ рдЕрдм рддрддреНрд╡реЛрдВ рдХреЛ <transition-group>
рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдШрдЯрдХ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЙрд╕реА рдкреНрд░реЙрдкреНрд╕ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ <transition>
рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐:
<transition>
рд╡рд┐рдкрд░реАрдд, <transition-group>
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ <span>
, рдФрд░ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ tag
рдкреНрд░реЛрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреМрди рд╕рд╛ рддрддреНрд╡ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ is
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ <ul is="transition-group">
ред<transition-group>
mode
рдкреНрд░реЛрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред<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
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред: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
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ!
рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрд┐рд▓реНрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреАред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдФрд░ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реИрдВ?
@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 - рд╡рд╣ рдкреНрд░рд╢реНрди рд╢рд╛рдпрдж рдордВрдЪ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рди рд╣реА рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕реБрдЭрд╛рд╡ рд╣реИ, рди рд╣реА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорджрдж рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдлреЛрд░рдо рдереНрд░реЗрдб рдореЗрдВ 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 }]`">
рдпрджрд┐ 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
рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдШрдЯрдХ рдХреЛ рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ:
value
рдирд╛рдо рдХреЗ рдПрдХ рдкреНрд░реЙрдк рдХреЛ рдмреЗрдирдХрд╛рдм рдХрд░реЗрдВinput
рдШрдЯрдирд╛ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдВ рдЬрдм рдореВрд▓реНрдп рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП this.$emit('input', value)
рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
@ yyx990803 рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдореИрдВ рдмрд╕ рдкрд░ рдЕрдЯрдХ рдЧрдпрд╛ рд╣реВрдБ:
.sync
рдХреНрдпреЛрдВ рд╣рдЯрд╛рдПрдВ?
рдореБрдЭреЗ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдХреЗрд╡рд▓ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ :selected.sync
рдпрд╛ v-model
рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рд╡реА-рдореЙрдбрд▓ рд╡рд┐рдзрд┐ рдХреЗ рдиреБрдХрд╕рд╛рди рджреЗрдЦрддрд╛ рд╣реВрдВ:
.sync
рдкреНрд░реЙрдкреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВрдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рд╡реА-рдореЙрдбрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ/рдХреНрд▓реАрдирд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдмрд╛рд▓ рдШрдЯрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкреНрд░реЛрдк рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИред рдореИрдВ рдпрд╣ рднреА рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ .sync
рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╡рд╕реНрддреБрдУрдВ/рд╕рд░рдгреА/рдЖрджрд┐ рдХреЛ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдмрд╛рд▓ рдШрдЯрдХ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрддреЗ рд╣реИрдВред рддреЛ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рд╕реЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдирд╣реАрдВ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЖрдо рд╣реИред) рддреЛ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдЪреАрдЬрд╝ рдХреЛ рд╣рдЯрд╛рдХрд░ рдПрдХ рдареЛрдХрд░ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдРрд╕рд╛ рдмрдирд╛рддрд╛ рд╣реИ рдкрд╛рд╕рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡реИрд▓реНрдпреВ рдкрд╛рд╕рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡реИрд▓реНрдпреВ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддреА рд╣реИред .sync
рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ "рдбреЗрдЯрд╛" рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдмрдЪреНрдЪреЗ рдХреА рдУрд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдХрд░ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛрдИ рднреА рд╣реЛред
рдореИрдВ Vue.js рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдБ (3 рджрд┐рди рдкрд╣рд▓реЗ) рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ, Vue.js рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░рдг рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ:
рдХрдо рд╕реЗ рдХрдо рдореИрдВрдиреЗ рдЕрдм рддрдХ рдпрд╣реА рдЦреЛрдЬрд╛ рд╣реИред
рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .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 рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ _рдФрд░ рднреА рдмреЗрд╣рддрд░_ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдмреАрдЪ...
рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рд▓реЗрдЦрди рдореЗрдВ рдореЗрд░реЗ рдкреНрд░рд╛рдердорд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЬреИрд╕реНрдореАрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рддреЛ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдХрд╛рдлреА рдкрдардиреАрдп рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж @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 рдореЗрдВ рд╕реЗ рдХреБрдЫ рдпрд╛ рд╕рднреА рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ?
@blocka рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордЧреНрд░ рдкреВрд░реНрдг рдЕрднреА рднреА Redux рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред
2.0 рдореЗрдВ рдЬреЛ рдмрджрд▓рд╛ рд╡рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреА рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рд╣реИред рдЖрдЗрдП рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
shouldComponentUpdate
рдХреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдЖрдо рддреМрд░ рдкрд░ 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/
enter-active-class
рдФрд░ leave-active-class
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 рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди "рд╣рдореЗрд╢рд╛" рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
shouldComponentUpdate
рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредрдореЛрдмрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА рдпрд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдХреЛ 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 рдЖрдкрдХреЛ рдордВрдЪреЛрдВ рдпрд╛ рдЧрдВрджреА рдЪреИрдЯ рдкрд░ рд╕рд╡рд╛рд▓ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд▓реЙрдХ рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐:
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реЗрдВ, рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдлрд╝реЛрд░рдо рдпрд╛ рдЧрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдкрдбреЗрдЯ : 2.0 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЕрдзрд┐рдХ рдирд┐рд╢реНрдЪрд┐рдд рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдирдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рджреЗрдЦреЗрдВ ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@chrisvfritz @Uninen рд╕реБрдзрд╛рд░: Vuex 2.0 рднреА Vue 1.x рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
vue-router
рдХрд╛ рдЕрдЧрд▓рд╛ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ Vue 2.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред