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

рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд▓реЗрдЦрдХ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ V.ss.s.s рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдЧрдгрд┐рдд рдЧреБрдгреЛрдВ рдХреЗ рдЕрдВрджрд░ рджреБрд╖реНрдкреНрд░рднрд╛рд╡
рдХрдореНрдкреНрдпреВрдЯреЗрдб рдЧреБрдг рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ Vue.js рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд░рд╛рдЬреНрдп рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рд░рд╛рдЬреНрдп рдЯреБрдХрдбрд╝реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдХрдореНрдкреНрдпреВрдЯреЗрдб рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд░рд╛рдЬреНрдп рдХреЗ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдиреНрдп рд░рд╛рдЬреНрдп рдЪрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
export default { data() { return { array: [1, 2, 3] }; }, computed: { reversedArray() { return this.array.reverse();
рдпрджрд┐ рд╣рдо
array
рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдФрд░
reversedArray
рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рджреЛрдиреЛрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдорд╛рди рд╣реИрдВред
: [ 3, 2, 1 ] : [ 3, 2, 1 ]
рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЧрдгрдирд╛ рдХреА рдЧрдИ
reversedArray
.reverse()
рдкреНрд░реЙрдкрд░реНрдЯреА рдЕрдкрдиреА
.reverse()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдореВрд▓
array
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд┐рдПред
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рд╣реИ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд╕реНрддреБрдУрдВ рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдХреАрдордд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
export default { props: { order: { type: Object, default: () => ({}) } }, computed:{ grandTotal() { let total = (this.order.total + this.order.tax) * (1 - this.order.discount); this.$emit('total-change', total) return total.toFixed(2); } } }
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдПрдХ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдИ рд╣реИ рдЬреЛ рдХрд░реЛрдВ рдФрд░ рдЫреВрдЯ рд╕рд╣рд┐рдд рдЖрджреЗрд╢ рдХреА рдХреБрд▓ рд▓рд╛рдЧрдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреБрд▓ рдСрд░реНрдбрд░ рд╡реИрд▓реНрдпреВ рдпрд╣рд╛рдБ рдмрджрд▓ рд░рд╣реА рд╣реИ, рд╣рдо рдПрдХ рдРрд╕реА рдШрдЯрдирд╛ рдХреЛ рдЙрдард╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ
grandTotal
рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдореВрд▓ рдШрдЯрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддреА рд╣реИред
<price-details :order="order" @total-change="totalChange"> </price-details> export default { // methods: { totalChange(grandTotal) { if (this.isSpecialCustomer) { this.order = { ...this.order, discount: this.order.discount + 0.1 }; } } } };
рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХрднреА-рдХрднреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдХрдо рд╣реА, рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╣рдо рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ 10% рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рдЫреВрдЯ рджреЗрддреЗ рд╣реИрдВред рд╣рдо
order
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА
discount
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ
0.1
рдЬреЛрдбрд╝рдХрд░ рдЫреВрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЧрд▓рдд рдЧрд▓рддреА рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ред
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рдЖрджреЗрд╢ рдореВрд▓реНрдп рдЧрдгрдирд╛рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ: рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рд▓рдЧрд╛рддрд╛рд░, рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ, "рдкреБрдирд░рд╛рд╡рд░реНрддреА" рд╣реЛрддреА рд╣реИред рд╣рдо рдЫреВрдЯ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреА рд╣реИ, рдЖрджреЗрд╢ рдХреА рдХреБрд▓ рд▓рд╛рдЧрдд рдХреЛ рдкреБрди: рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЫреВрдЯ рдлрд┐рд░ рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдкреБрдирд░реНрдЧрдгрдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ - рдЕрдирдиреНрддрддрд╛ рддрдХред
рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЧрд▓рддреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡реЗрджрди рдореЗрдВ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реИ? рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдпрджрд┐ рдЗрд╕ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ) рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдРрд╕реА рдЧрд▓рддреА рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдСрд░реНрдбрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЦрд░реАрджрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрджреЗрд╢ рдореЗрдВ 1000 рдирд┐рдпрдорд┐рдд рдСрд░реНрдбрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЗрд╕реНрдЯреЗрдб рдЧреБрдг рдмрджрд▓рдирд╛
рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдбреЗрд╡рд▓рдкрд░ рдХреЛ
props
рд╕реЗ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдХреБрдЫ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд╕реНрддреБ рдпрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд "рд╕рд░рд▓" рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ? рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
<template> <div class="hello"> <div>Name: {{product.name}}</div> <div>Price: {{product.price}}</div> <div>Stock: {{product.stock}}</div> <button @click="addToCart" :disabled="product.stock <= 0">Add to card</button> </div> </template> export default { name: "HelloWorld", props: { product: { type: Object, default: () => ({}) } }, methods: { addToCart() { if (this.product.stock > 0) { this.$emit("add-to-cart"); this.product.stock--; } } } };
рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
Product.vue
рдШрдЯрдХ рд╣реИ, рдЬреЛ рдЙрддреНрдкрд╛рдж рдХрд╛ рдирд╛рдо, рдЙрд╕рдХрд╛ рдореВрд▓реНрдп рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рд▓ рдХреА рдорд╛рддреНрд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдШрдЯрдХ рдПрдХ рдмрдЯрди рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЦрд░реАрджрд╛рд░ рдХреЛ рдЯреЛрдХрд░реА рдореЗрдВ рд╕рд╛рдорд╛рди рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
product.stock
рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ:
- рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди (рдореНрдпреВрдЯреЗрд╢рди) рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореВрд▓ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
- рдпрд╣ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрдЯрди рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╡реНрдпрд╡рд╣рд╛рд░, рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рд╣рдо
product
рдШрдЯрдХ рдореЗрдВ рдХреБрдЫ рддрд░реНрдХ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╢рд╛рдпрдж рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореВрд▓ рдШрдЯрдХ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред
<template> <Product :product="product" @add-to-cart="addProductToCart(product)"></Product> </template> import Product from "./components/Product"; export default { name: "App", components: { Product }, data() { return { product: { name: "Laptop", price: 1250, stock: 2 } }; }, methods: { addProductToCart(product) { if (product.stock > 0) { product.stock--; } } } };
рдЗрд╕ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕реЛрдЪ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреА рд╣реИ: "рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░, рдореБрдЭреЗ
addProductToCart
рд╡рд┐рдзрд┐ рдореЗрдВ
product.stock
рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
addProductToCart
" рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдЫреЛрдЯреА рд╕реА рдЧрд▓рддреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЕрдм рдмрдЯрди рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рд▓ рдХреА рдорд╛рддреНрд░рд╛ 1 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрдЧреА, рдмрд▓реНрдХрд┐ 2 рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред
рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдРрд╕рд╛ рдЪреЗрдХ рдХреЗрд╡рд▓ рджреБрд░реНрд▓рдн рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╡рд┐рд╢реЗрд╖ рдЫреВрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдХреЛрдб рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХ рдЙрддреНрдкрд╛рдж рдХреА 1 рдкреНрд░рддрд┐ рдХреЗ рдмрдЬрд╛рдп, 2 рдкреНрд░рддрд┐рдпрд╛рдВ рдЦрд░реАрджреЗрдВрдЧреЗред
рдпрджрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреЛ рдЕрд╕рдВрдмрджреНрдз рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рдЗрд╕реЗ рд╡рд╣ рдлрд╝реЙрд░реНрдо рд╣реЛрдиреЗ рджреЗрдВ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднрд░рддрд╛ рд╣реИред рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ
user
рдХреЗ рд╕рд╛рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░
user
рдХреЗ рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рдкрддреЗ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдХреЛрдб "рд╕рд╣реА" рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред
v-model
рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
user
рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред Vue.js рдпрд╣ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реА рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЛ:
- рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рд░рджреНрдж рдХрд░реЗрдВ рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
- рдпрджрд┐ рд╕рд░реНрд╡рд░ рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
user
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХреИрд╕реЗ рдХрд░реЗрдВ? - рдХреНрдпрд╛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рдкрддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рд╕рдорд╕реНрдпрд╛ рдХреЛ "рдареАрдХ" рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
user
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рдП:
<user-form :user="{...user}">
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ
UserForm
рдШрдЯрдХ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
<template> <div> <input placeholder="Email" type="email" v-model="form.email"/> <input placeholder="Name" v-model="form.name"/> <button @click="onSave">Save</button> <button @click="onCancel">Save</button> </div> </template> export default { props: { user: { type: Object, default: () => ({}) } }, data() { return { form: {} } }, methods: { onSave() { this.$emit('submit', this.form) }, onCancel() { this.form = {...this.user} this.$emit('cancel') } } watch: { user: { immediate: true, handler: function(userFromProps){ if(userFromProps){ this.form = { ...this.form, ...userFromProps } } } } } }
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреЛрдб рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо
user
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди (
watch
) рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ
form
рдбреЗрдЯрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЕрдм рдлреЙрд░реНрдо рдХреА рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдФрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
- рдЖрдк рдкреНрд░рдкрддреНрд░ рдХреЛ рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╣
this.form = {...this.user}
ред - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЬреНрдп рд╣реИред
- рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдШрдЯрдирд╛ рдореЗрдВ рдореВрд▓ рдШрдЯрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдЬрдм рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдореВрд▓ рдШрдЯрдХреЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдБрдЪ
рдпрджрд┐ рдХреЛрдИ рдШрдЯрдХ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдЕрд╕рдВрдЧрддрддрд╛рдПрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрд╡реЗрджрди рдХрд╛ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдХреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдПрдХ рдШрдЯрдХ рдЬреЛ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ
dropdown
рдШрдЯрдХ (рдорд╛рддрд╛
dropdown-menu
рдкрд┐рддрд╛) рдФрд░ рдПрдХ
dropdown-menu
рдШрдЯрдХ (рдмрдЪреНрдЪрд╛) рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ
dropdown-menu
рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдШрдЯрдХ рдХреЛ рдЫрд┐рдкрд╛рдирд╛ рдФрд░ рджрд┐рдЦрд╛рдирд╛
dropdown
рдХреЗ рдореВрд▓ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
selectOption
рд╡рд┐рдзрд┐ рдкрд░ рдзреНрдпрд╛рди
selectOption
ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдРрд╕рд╛ рдмрд╣реБрдд рдХрдо рд╣реА рд╣реЛрддрд╛ рд╣реИ, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╕реАрдзреЗ рддреМрд░ рдкрд░
$parent
рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕ рдЗрдЪреНрдЫрд╛ рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреЛрдб рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдЖрдк рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
- рдпрджрд┐ рд╣рдо
showMenu
рдпрд╛ selectedOption
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓ рджреЗрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдбреНрд░реЙрдкрдбрд╛рдЙрди рдореЗрдиреВ рдмрдВрдж рдирд╣реАрдВ рд╣реЛ рдкрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
dropdown-menu
рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
$parent
рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдХреЛрдб, рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
dropdown
рдШрдЯрдХ рдЕрдм
dropdown-menu
рдХрд╛ рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рдЕрдм
dropdown-menu
рдкреИрд░реЗрдВрдЯ
transition
рдШрдЯрдХ рд╣реИред
рдЧреБрдгреЛрдВ рдХреЛ рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рдиреАрдЪреЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЕрд░реНрде рд╣реИред рдпрд╣рд╛рдВ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм, рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмрд╛рд▓ рдШрдЯрдХ рдЕрдм рдореВрд▓ рдШрдЯрдХ рд╕реЗ рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИред рд╣рдо рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЧреБрдгреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдирд┐рдореЗрдЯреЗрдб рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдореВрд▓ рдШрдЯрдХ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдмрд╕ рдЗрд╕ рдШрдЯрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
dropdown
рдШрдЯрдХ рдЦреБрдж рд╣реА рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдХреИрд╕реЗ рдЪреБрдирдирд╛ рд╣реИ рдФрд░ рдореЗрдиреВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдХреЛрдб рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред "рд╕рд░рд▓ рдФрд░ рддреНрд╡рд░рд┐рдд" рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд┐рдХрд╛рд╕ рддрдХрдиреАрдХреЗрдВ рдЕрдХреНрд╕рд░ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╣реЛрддреА рд╣реИрдВред рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдзреИрд░реНрдп рдФрд░ рд╕рдордп рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред рдпрд╣ Vue.js. рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдХреЛрдИ рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ?
