Angular Material এর Virtual Scrolling কম্পোনেন্ট, যা MatVirtualScrollViewport নামে পরিচিত, বড় ডেটা সেটগুলিকে স্ক্রল করার সময় পারফরম্যান্স উন্নত করতে ব্যবহৃত হয়। ভার্চুয়াল স্ক্রলিং আপনাকে শুধুমাত্র স্ক্রিনে দৃশ্যমান আইটেমগুলো লোড করতে এবং বাকি আইটেমগুলোকে Lazy Load করতে সহায়তা করে। এতে পেজ লোডের সময় এবং মেমরি ব্যবহারে সাশ্রয় হয়, বিশেষ করে যখন আপনি বড় ডেটা সেট বা তালিকা প্রদর্শন করতে চান।
ভার্চুয়াল স্ক্রলিং ব্যবহার করার মাধ্যমে, আপনি হাজার হাজার আইটেমের মধ্যে দ্রুত স্ক্রল করতে পারবেন, কারণ Angular শুধুমাত্র স্ক্রিনে দৃশ্যমান আইটেমগুলো ম্যানেজ করে এবং বাকি আইটেমগুলো লোড করা হয় যখন ব্যবহারকারী স্ক্রল করে।
ভার্চুয়াল স্ক্রলিং ব্যবহারের জন্য ScrollingModule ইমপোর্ট করতে হবে।
import { ScrollingModule } from '@angular/cdk/scrolling';
@NgModule({
imports: [ScrollingModule]
})
export class AppModule {}
Angular Material এর MatVirtualScrollViewport ব্যবহার করে ভার্চুয়াল স্ক্রলিং যুক্ত করা যেতে পারে। নিচে একটি উদাহরণ দেয়া হলো:
<mat-virtual-scroll-viewport itemSize="50" [minBufferPx]="200" [maxBufferPx]="400">
<div *cdkVirtualFor="let item of items" class="item">
{{ item }}
</div>
</mat-virtual-scroll-viewport>
এখানে:
*ngFor
এর মতো কাজ করে, কিন্তু শুধুমাত্র স্ক্রিনে দৃশ্যমান আইটেমগুলো রেন্ডার করে।এখন টাইপস্ক্রিপ্ট ফাইলে একটি ডেটা অ্যারে তৈরি করতে হবে যা ভার্চুয়াল স্ক্রলিংয়ের জন্য ব্যবহার হবে। এখানে একটি উদাহরণ দেয়া হলো:
import { Component } from '@angular/core';
@Component({
selector: 'app-virtual-scroll',
templateUrl: './virtual-scroll.component.html',
styleUrls: ['./virtual-scroll.component.css']
})
export class VirtualScrollComponent {
// উদাহরণস্বরূপ ১০০০ আইটেমের একটি তালিকা
items = Array.from({ length: 1000 }, (_, i) => `Item #${i + 1}`);
}
এখানে, আমরা একটি 1000 আইটেমের তালিকা তৈরি করেছি যা ভার্চুয়াল স্ক্রলিং দ্বারা প্রদর্শিত হবে।
MatVirtualScrollViewport এর ভিতরে থাকা আইটেমগুলোর সাইজ এবং মাপ কাস্টমাইজ করতে CSS বা SCSS ব্যবহার করা যেতে পারে।
.item {
height: 50px; /* আইটেমের উচ্চতা */
display: flex;
align-items: center;
padding: 10px;
border-bottom: 1px solid #ccc;
}
এখানে, .item ক্লাসটি প্রতিটি আইটেমের স্টাইলিং নির্ধারণ করে।
Angular Material Virtual Scrolling ডেভেলপারদের জন্য একটি শক্তিশালী টুল যা বড় ডেটাসেট বা লম্বা তালিকা প্রদর্শনের সময় পারফরম্যান্সকে অনেক উন্নত করে। এটি শুধুমাত্র দৃশ্যমান আইটেমগুলো লোড করে এবং ব্রাউজারকে অতিরিক্ত মেমরি এবং প্রসেসিংয়ের চাপ থেকে মুক্ত রাখে। আপনি MatVirtualScrollViewport এবং cdkVirtualFor ডিরেকটিভ ব্যবহার করে সহজেই ভার্চুয়াল স্ক্রলিং সক্ষম করতে পারেন এবং বড় ডেটা সেটের সাথে কাজ করা অনেক দ্রুত এবং কার্যকরী হবে।
Angular Material এর MatList কম্পোনেন্ট সাধারণত একটি স্টাইলিশ এবং কাস্টমাইজযোগ্য লিস্ট তৈরি করতে ব্যবহৃত হয়। কিন্তু যখন লিস্টে অনেক ডেটা থাকে, তখন পুরো লিস্টটি লোড করা এবং ডিসপ্লে করা পারফরম্যান্স সমস্যার সৃষ্টি করতে পারে, বিশেষত মোবাইল ডিভাইসে। এর সমাধান হিসেবে, Virtual Scrolling বা ভার্চুয়াল স্ক্রল ব্যবহার করা হয়, যা শুধুমাত্র দৃশ্যমান এলিমেন্টগুলো লোড করে, এর ফলে পারফরম্যান্স উন্নত হয়।
Angular Material এর MatList এর সাথে ভার্চুয়াল স্ক্রল ব্যবহার করার জন্য CdkVirtualScrollViewport এবং CdkScrollingModule ব্যবহার করা হয়।
ভার্চুয়াল স্ক্রল ব্যবহার করার জন্য প্রথমে CdkScrollingModule এবং MatListModule ইমপোর্ট করতে হবে।
import { CdkScrollingModule } from '@angular/cdk/scrolling';
import { MatListModule } from '@angular/material/list';
@NgModule({
imports: [
CdkScrollingModule,
MatListModule
]
})
export class AppModule { }
এখন, CdkVirtualScrollViewport ব্যবহার করে ভার্চুয়াল স্ক্রল যোগ করা যাবে। এটি ব্যবহারকারী স্ক্রলিং করলে শুধুমাত্র দৃশ্যমান আইটেমগুলোই লোড করবে এবং অন্যান্য আইটেমগুলো লোড হবে না যতক্ষণ না সেগুলো দৃশ্যমান হয়।
<cdk-virtual-scroll-viewport itemSize="50" class="list-container">
<mat-list>
<mat-list-item *cdkVirtualFor="let item of items">
{{item}}
</mat-list-item>
</mat-list>
</cdk-virtual-scroll-viewport>
এখানে:
import { Component } from '@angular/core';
@Component({
selector: 'app-virtual-list',
templateUrl: './virtual-list.component.html',
styleUrls: ['./virtual-list.component.css']
})
export class VirtualListComponent {
items = Array.from({ length: 1000 }, (_, i) => `Item #${i + 1}`);
}
এখানে, items
একটি ১০০০ আইটেমের লিস্ট তৈরি করছে, যা ভার্চুয়াল স্ক্রলিংয়ের মাধ্যমে লোড হবে।
লিস্টের স্টাইলিং করতে CSS ব্যবহার করতে পারেন। যেমন, ভার্চুয়াল স্ক্রল কন্টেইনারের আউটপুটের মধ্যে প্যাডিং এবং স্ক্রলবার ইত্যাদি কাস্টমাইজ করা যায়।
.list-container {
height: 400px;
width: 300px;
border: 1px solid #ccc;
overflow: auto;
}
এখানে, height এবং width দিয়ে ভার্চুয়াল স্ক্রল কন্টেইনারের আকার নির্ধারণ করা হয়েছে, এবং overflow এর মাধ্যমে স্ক্রলিং সক্ষম করা হয়েছে।
Virtual Scrolling বা ভার্চুয়াল স্ক্রল Angular Material এর MatList কম্পোনেন্টে খুবই কার্যকরী, বিশেষত যখন অনেক আইটেম নিয়ে কাজ করা হয়। এটি পারফরম্যান্স অপটিমাইজেশন করতে সাহায্য করে, কারণ এটি শুধুমাত্র দৃশ্যমান আইটেমগুলো লোড করে। CdkVirtualScrollViewport এবং CdkScrollingModule এর মাধ্যমে সহজেই ভার্চুয়াল স্ক্রল প্রয়োগ করা যায়, যা বড় বড় ডেটা সেটের সাথে কাজ করার জন্য উপযুক্ত।