
рдХрдИ рдЧреБрдг рдпрд╛ рд╕рдВрдкрддреНрддрд┐-рд╡рд╕реНрддреБ: рдЪрдпрди рдорд╛рдирджрдВрдб
Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдШрдЯрдХ рдХреЗ рдкреНрд░рдореБрдЦ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред Vue рдореЗрдВ, рдкрд╛рд░рд┐рдд рдЧреБрдг рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдпрджрд┐ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ, рдШрдЯрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╣рд╛рдВ рдПрдХ рдШрдЯрдХ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ
рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдорд╛рдгреБ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдирд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдШрдЯрдХ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:
рдЯреЗрдореНрдкрд▓реЗрдЯ
<template> <div> <div>First name: {{ firstName }}</div> <div>Last name: {{ lastName }}</div> <div>Birth year: {{ birthYear }}</div> </div> </template>
рд▓рд┐рдкрд┐
const MIN_BIRTH_YEAR = 1900 export default { name: 'PersonInfo', props: { firstName: { type: String, required: true, validator: firstName => firstName !== '' }, lastName: { type: String, required: true, validator: lastName => lastName !== '' }, birthYear: { type: Number, required: true, validator: year => year > MIN_BIRTH_YEAR && year < new Date().getFullYear() } } }
рдЖрдЗрдП рдЗрд╕ рдШрдЯрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦреЗрдВред
<PersonInfo first-name="Jill" last-name="Smith" :birth-year="2000" />
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
рд▓рд╛рдн
- рд╕рднреА рдЧреБрдг рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдорд╛рди рдЕрдорд╛рдиреНрдп рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдЧрд╛ред
- рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдЧреБрдгреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ
- "рдлреНрд▓реИрдЯ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ"
- рдирдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдЧреБрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ: рдмрд╕ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ
default
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
props: { firstName: { type: String, required: true, }, lastName: { type: String, required: true, }, birthYear: { type: Number, required: true, validator: year => year > MIN_BIRTH_YEAR && year < new Date().getFullYear() }, city: { type: String, default: 'New York' } }
рдХрдорд┐рдпреЛрдВ
- рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдХреНрд░рд┐рдпрд╛ рдХреЛрдб, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдм рдЬрдм рдбреЗрдЯрд╛ рдХрд┐рд╕реА рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
<PersonInfo :first-name="person.firstName" :last-name="person.lastName" :birth-year="person.birthYear" />
- рдЧреБрдгреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдХреНрд░рд┐рдпрд╛ (рд╡рд╕реНрддреБ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ)
рд╡рд╕реНрддреБ рд╕рдВрдкрддреНрддрд┐
рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрдм рдкрд░рдорд╛рдгреБ рдбреЗрдЯрд╛ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдРрд╕рд╛ рдбреЗрдЯрд╛ рдПрдХ person
рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдЯреЗрдореНрдкрд▓реЗрдЯ
<template> <div> <div>First name: {{ person.firstName }}</div> <div>Last name: {{ person.lastName }}</div> <div>Birth year: {{ person.birthYear }}</div> </div> </template>
рд▓рд┐рдкрд┐
import quartet from 'quartet'
рдЖрдЗрдП рджреЗрдЦреЗрдВ:
<PersonInfo :person="person"/> <PersonInfo :person="{ firstName: 'Jill', lastName: 'Smith', birthYear: 2000 }"/>
рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
рд▓рд╛рдн
- рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдХреЛрдб рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
- рдпрджрд┐ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рддреЛ рдХреЛрдб рдХрдо рдирд┐рд░рд░реНрдердХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдорд┐рдпреЛрдВ
- рд╕рднреА рдореВрд▓реНрдп рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рдмрдВрдзреЗ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдорд╛рди рдЕрдорд╛рдиреНрдп рд╣реИ - рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕рдВрдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдорд╛рдиреНрдп рд╣реИ
- рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп: рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдореВрд░реНрдд рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИ
- рдШрдЯрдХ рдореЗрдВ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░
- рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдирдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдЧреБрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ)
- рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдЙрд╕реА рд╕реАрдорд╛ рддрдХ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рддреНрдпрд╛рдкрди рдЙрдкрдХрд░рдг (рдЬреИрд╕реЗ
quartet
рд╕рддреНрдпрд╛рдкрди рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдирд┐рд╖реНрдХрд░реНрд╖
рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖрдпрд╛:
- рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╢реНрд░реЗрдпрд╕реНрдХрд░ рд╣реИред
- рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдЬрдм рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рдирд╣реАрдВ рд╣реИред
рдкреАред рдПрд╕
рдореБрдЭреЗ рдЖрдкрдХреЗ рдЪрдпрди рдорд╛рдирджрдВрдб рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЖрдк рдХрд┐рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВ? рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдФрдЪрд┐рддреНрдп рдХреЛ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реИ? рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЕрдкрдбреЗрдЯ 19:26, 01/16/2019
рдПрдХ рддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ, c v-bindред рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдЪрд░реНрдЪрд╛