рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореИрдВ рдЖрдкрдХреЛ рдбреЗрдиреА 
рд╣реЗрдбреНрд░рд┐рдХ рдХреЗ рд▓реЗрдЦ " 
рдкреЗрдЬреЗрд╢рди рдЗрди рд╡реАрдпреВ.рдЬреЗрдПрд╕ " рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВред
рдкреЗрдЬрд┐рдиреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХреЛрдВ рдпрд╛ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ UX рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рддреЛ Vue.js рдШрдЯрдХ рдХреЛ рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЯреБрдХрдбрд╝рд╛ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдФрд░ рдлрд┐рд░ рдореИрдВ 
рдЯреЗрдореНрдкрд▓реЗрдЯ рджрд┐рдЦрд╛рдКрдВрдЧрд╛
рд╕рднреА рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛ рдореЗрдВ рд╕реЗ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ - рдкреГрд╖реНрда рд╕рдВрдЦреНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
data(){ return { pageNumber: 0  
рдкреНрд░реЙрдкреНрд╕ (рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ) рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЗ рд▓рд┐рдП 
рдЖрдХрд╛рд░ рддрд░реНрдХ рднреА рд▓реВрдВрдЧрд╛ред
 props:{ listData:{ type:Array, required:true }, size:{ type:Number, required:false, default: 10 } } 
рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдореИрдВ 
рдкрд┐рдЫрд▓реЗ (рдкрд┐рдЫрд▓реЗ) рдФрд░ 
рдЕрдЧрд▓реЗ (рдЕрдЧрд▓реЗ) рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:
 methods:{ nextPage(){ this.pageNumber++; }, prevPage(){ this.pageNumber--; } } 
рдПрдХ рддреНрд╡рд░рд┐рдд рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдиреЗ рдкреГрд╖реНрда рд╣реИрдВ:
 pageCount(){ let l = this.listData.length, s = this.size;  
рдЕрдм, рдЧрдгрдирд╛ рдХреА рдЧрдИ 
рдкрдЧрдбрдВрдЯрд┐рдбреЗрдЯрд╛ рд╕рдВрдкрддреНрддрд┐ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рдВрдпреБрдХреНрдд рд╣реИред рдпрд╣ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
 paginatedData(){ const start = this.pageNumber * this.size, end = start + this.size; return this.listData.slice(start, end); } 
рд╕рдВрдкрд╛рджрдХреАрдп : рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднрдпрд╛рдирдХ рдФрд░ рдмреЛрдЭрд┐рд▓ рдХрд┐рдпрд╛ рдерд╛ред 
.Slice рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж, 
рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХрд╛рд░реЗрд▓рд╕ ред
рдФрд░ рд╣рдорд╛рд░рд╛ 
рдЯреЗрдореНрдкрд▓реЗрдЯ <div> <ul> <li v-for="p in paginatedData"> {{p.first}} {{p.last}} {{p.suffix}} </li> </ul> <button @click="prevPage"> Previous </button> <button @click="nextPage"> Next </button> </div> 
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдмрдЯрди рддрдм рдХрд╛рдо рдХрд░реЗрдВ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдХрд░рдирд╛ рд╣реЛред 
рдкреНрд░рдмрд▓ рдмрдЯрди рдХреЗ рд▓рд┐рдП 
, рдореИрдВ 
рдЬреЛрдбрд╝реВрдВрдЧрд╛ :
: рдЕрдХреНрд╖рдо = "рдкреЗрдЬрдирдВрдмрд░ == 0"
рдФрд░ 
рдЕрдЧрд▓реЗ рдкреЗрдЬ рдмрдЯрди рдХреЗ рд▓рд┐рдП 
рдореИрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ :
: рдЕрдХреНрд╖рдо = "рдкреЗрдЬрдирдВрдмрд░> = рдкреЗрдЬрдХрд╛рдЙрдВрдЯ -1"
рдореЗрд░реЗ рдШрдЯрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╢реАрд▓ рдбреЗрдореЛ:
рдХрднреА-рдХрднреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрдо рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреГрд╖реНрдард╛рдВрдХрди рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдбреЗрдиреА рд╣реЗрдбреНрд░рд┐рдХ рдПрдХ рдпреВрдПрд╕рдПрдлрд╝ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╣реИ рдЬреЛ рдЕрдкрдиреА рдиреМрдХрд░реА рд╕реЗ рдмрд╣реБрдд рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ Vue.js рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╡рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдХрднреА-рдХрднреА рдмреНрд▓реЙрдЧ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЯреНрд╡рд┐рдЯрд░ рдкрд░ @dennythecoder рдкрд░ рдЙрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред