Vue.js рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕

рдореИрдВ Syncrasy рдЯреЗрдХ (рдЖрдИрдЯреА рд╕рдорд╛рдзрд╛рди рдХрдВрдкрдиреА) рдореЗрдВ рдПрдХ рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ ред рдореБрдЭреЗ рд░рд┐рдПрдХреНрдЯ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдХреНрдпреЛрдВ рдмрддрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдк рдореЗрд░реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рд╕рдордЭ рд╕рдХреЗрдВ рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ Vue.js. рдХреА рдЪрд░реНрдЪрд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ


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


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


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


рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


Vue рдкрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реАрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рднрд╛рд░реА рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЪрд▓реЛ рдирдВрдмрд░реЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЬ Vue рдореЗрдВ 147K Github рдХреЗ рд╕рд┐рддрд╛рд░реЗ рд╣реИрдВ, рдЬреЛ Angular (50.6k stars) рдФрд░ React (135k stars) рдЬреИрд╕реЗ JS рджрд┐рдЧреНрдЧрдЬреЛрдВ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред


рдореИрдВрдиреЗ Vue рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдЪрд╛рд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:


Vue рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛


Vue рдХреЗ рдлрдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╣реВрдб рдХреЗ рддрд╣рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╛рдорд╛рди рд╣реИрдВред Vue.js рдПрдХ рд╕рд░рд▓ рджреГрд╢реНрдп-рдЙрдиреНрдореБрдЦ рдордВрдЪ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рдкрд╣рд▓рд╛ рдореБрдЦреНрдп рд▓рд╛рдн рд╣реИред рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рддрднреА рдорд╛рдиреНрдп рд╣реИ рдЬрдм рдпрд╣ рдирд╛рдорд╛рдВрдХрд┐рдд рдФрд░ рдиреЗрд╕реНрдЯреЗрдб рдирд╛рдо рд╡рд╛рд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИред


Vue рдореЗрдВ рдПрдХ рдПрдХрд▓ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рд╡реЗрдм рдРрдк рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред


let vm = new Vue({ el: "#my-webapp", data: { firstName: "MyFamous", lastName: "Magazine", } }) 

рдлрд┐рд░, рдЕрдВрддрд┐рдо рджреГрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдПрдХ рд╕рд╛:


 <div id="my-webapp"> <h1>Hello, {{firstName}} {{lastName}}!</h1> </div> 

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреНрдпрд╛ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИ?


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


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


рдЕрд╡рдпрд╡


рд╡реЗрдм рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП, Vue.com Vom.compoment рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Vue Developers рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддрд░рд╣ рд╣реА рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдирд╛рдо, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


 Vue.component('component-name', { /* options */ }) 

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


 <template> <p>{{ hi }}</p> </template> <script> export default { data() { return { hi: 'Hi Folks!' } } } </script> <style scoped> p { color: yellow; } </style> 

Vue рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХ рдЖрдкрдХреЗ рд╡реЗрдм рдРрдк рдореЗрдВ рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WebPack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреЛрдбрд░ рдкреВрд░реНрд╡рдкреНрд░рдХреНрд░рдордХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдЯрд╛рдЗрдкрдкреНрд░рддрд┐
рдПрд╕рд╕реАрдПрд╕рдПрд╕
рд╕рд╛рд╕
рдХрдо
PostCSS
рдмрдВрджрд░


Vue v-bind рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХ рдХреЛ рдореВрд▓ рдШрдЯрдХ (Props) рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд░рдгреА рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


 props:{ title: String, likes: Number, isPublished: Boolean, commentIds: Array, author: Object, callback: Function, contactsPromise: Promise // or any other constructor } 

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


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, Vue рд╡реЗрдм рдРрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд╛рд╕ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди Vue рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреА рд╕реБрд╡рд┐рдзрд╛ рднреА рджреЗрддрд╛ рд╣реИред


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


рд╡реА-рдСрди рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:


 <div id="example-1"> <button v-on:click="counter += 1">Add 1</button> <p>The button above has been clicked {{ counter }} times.</p> </div> 

Vue рдореЗрдВ HTML DOM рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:
рдмрджрд▓рд╛рд╡ рдкрд░
рдХреНрд▓рд┐рдХ рдкрд░
рд╣реЛрд╡рд░ рдкрд░
рд▓реЛрдб рдкрд░
рдорд╛рдЙрд╕-рдЖрдЙрдЯ рдкрд░
рдорд╛рдЙрд╕ рдкрд░
рд▓реЛрдб рдкрд░


Vue JS рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░


рдШрдЯрдирд╛рдХреНрд░рдо рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рд╕реНрд╡рд░ рдореЗрдВ рд▓реВрдк


Vue рдореЗрдВ рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ DOM рд╕реЗ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдпрд╛ рдЬреЛрдбрд╝рдирд╛ рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╕рддреНрдп рд╣реИред рд╕рд╢рд░реНрдд рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рддреНрдп рд╣реЛрдиреЗ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП v-if рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


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


 <template> <div> <!-- v-if="javascript expression" --> <h1 v-if="isActive">Hello Vuejs</h1> <button @click="isActive= !isActive">Click</button> </div> </template> <script> export default{ data:function(){ return{ isActive:false } } } </script> 

V-if рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк v- рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 <h1 v-if="isActive">Hello Vuejs</h1> <h1 v-else>Hey Vuejs</h1> 

рдЖрдк рдЗрд╕реЗ рд╡реА-рдФрд░-рдЕрдЧрд░ рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 <h1 v-if="isActive">Hello Vuejs</h1> <h1 v-else-if="isActive && a.length===0">You're vuejs</h1> <h1 v-else>Hey Vuejs</h1> 

рдпрджрд┐ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд╡рд╣ рдорд╛рди рд╕рддреНрдп рд╣реИ, рддреЛ v-if рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪрд▓рд╛рдПрдБред рдЖрдЧреЗ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП, v-else рдпрд╛ v-if-else if- v-if-else рдирд┐рд░реНрджреЗрд╢ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


Vue JS рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг API рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ V- рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ DOM рдореЗрдВ рдЖрдЗрдЯрдореНрд╕ рдХреА рд╕реВрдЪреА рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред


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


 <template> <ul> <!-- list rendering starts --> <li v-for="user in users">{{user.name}}</li> </ul> </template> <script> export default{ data:function(){ return{ users:[ {id:1,name:"samuel"}, {id:2,name:"queen"}, {id:3,name:"rinha"}, ] } } } </script> 

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ, рдПрдХ рд▓реВрдк рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ v-for directive рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред рд╕рд░рдгреА рдЙрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд░рдгреА рдХреЗ рдЕрдВрджрд░ рдореМрдЬреВрдж рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред


рдЖрдЙрдЯрдкреБрдЯ:


 samuel queen rinha 

рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ-рддрд░рдлрд╝рд╛ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ


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


рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


 <template> <input v-model="name" placeholder="name"/> <p>{{name}}</p> </template> <script> export default{ data:function(){ return{ name:"" } } } </script> <template> <input v-model="name" placeholder="name"/> <p>{{name}}</p> </template> <script> export default{ data:function(){ return{ name:"" } } } </script> 

v-model рдирд┐рд░реНрджреЗрд╢ .lazy рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИред


рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рд╕рдлреЗрдж рд╕реНрдерд╛рди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП .trim рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдпрджрд┐ рдЖрдк рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ .number рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд╣рд╛рдВ рдореМрдЬреВрдж рд╣реИред


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

Source: https://habr.com/ru/post/hi465409/


All Articles