Nested Views এবং Routing Events

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Routing এবং Navigation Management |

ExtJS এ Nested Views এবং Routing Events ব্যবহৃত হয় একাধিক ভিউ এবং নেভিগেশন পরিচালনা করার জন্য, যা আপনাকে অ্যাপ্লিকেশনের মধ্যে বিভিন্ন অংশের মধ্যে ভিউ রাউটিং এবং ডায়নামিক কন্টেন্ট লোড করার ক্ষমতা প্রদান করে। এই ফিচারগুলি সাধারণত একক পৃষ্ঠার অ্যাপ্লিকেশন (SPA) তৈরি করার জন্য ব্যবহৃত হয়।

১. Nested Views

Nested Views হলো এমন ভিউ যা অন্য ভিউয়ের মধ্যে অন্তর্ভুক্ত থাকে বা নির্দিষ্ট প্যানেলে উপস্থাপিত হয়। এর মাধ্যমে আপনি ডায়নামিকভাবে একাধিক ভিউকে একে অপরের মধ্যে অ্যাড করতে পারেন, যাতে আপনার অ্যাপ্লিকেশন স্কেলেবল এবং আরও মডুলার হয়।

উদাহরণ: Nested Views তৈরি করা

ধরা যাক, আপনার একটি মূল প্যানেল রয়েছে, এবং এতে আপনি দুটি ভিউ (একটি গ্রিড এবং একটি ফর্ম) অন্তর্ভুক্ত করতে চান।

Ext.define('MyApp.view.MainPanel', {
    extend: 'Ext.panel.Panel',
    xtype: 'mainpanel',
    layout: 'border',  // Layout সেট করা হলো 'border' যাতে ভিউটি বিভিন্ন অংশে বিভক্ত হয়
    items: [
        {
            xtype: 'grid',  // প্রথম ভিউ: গ্রিড
            region: 'center',
            store: 'MyStore',  // স্টোর ব্যবহার হচ্ছে
            columns: [
                { text: 'Name', dataIndex: 'name' },
                { text: 'Email', dataIndex: 'email' }
            ]
        },
        {
            xtype: 'form',  // দ্বিতীয় ভিউ: ফর্ম
            region: 'east',  // ফর্মটি 'east' অঞ্চলে
            title: 'User Form',
            width: 300,
            bodyPadding: 10,
            items: [
                { xtype: 'textfield', fieldLabel: 'Name' },
                { xtype: 'textfield', fieldLabel: 'Email' }
            ]
        }
    ]
});

এখানে:

  • xtype: 'grid': একটি গ্রিড ভিউ তৈরি করা হয়েছে যা ডেটা টেবিল দেখাবে।
  • xtype: 'form': একটি ফর্ম ভিউ তৈরি করা হয়েছে যেখানে ব্যবহারকারী ইনপুট দিতে পারবেন।

এগুলি layout: 'border' এর মাধ্যমে একটি নির্দিষ্ট অঞ্চল (এস্ট, সেন্টার) তৈরি হয়ে একে অপরের মধ্যে নেস্টেড হয়ে গেছে।


২. Routing Events

Routing Events বা View Routing একটি গুরুত্বপূর্ণ বিষয় একক পৃষ্ঠার অ্যাপ্লিকেশন (SPA) তৈরি করার জন্য, যেখানে আপনি বিভিন্ন ভিউয়ের মধ্যে সহজেই নেভিগেট করতে পারেন। ExtJS এর Ext.router ক্লাস ব্যবহৃত হয় রাউটিং এবং URL এর মাধ্যমে ভিউ পরিবর্তন পরিচালনা করার জন্য।

উদাহরণ: Routing ব্যবহার করা

ExtJS তে রাউটিং ব্যবহারের জন্য Ext.util.History এবং Ext.Router ব্যবহৃত হয়, যা ভিউ রাউটিং, URL হ্যান্ডলিং এবং হিস্ট্রি ম্যানেজমেন্ট করতে সাহায্য করে।

Ext.define('MyApp.view.Main', {
    extend: 'Ext.container.Viewport',
    layout: 'fit',
    items: [{
        xtype: 'panel',
        html: '<h1>Welcome to MyApp</h1>',
        dockedItems: [{
            xtype: 'toolbar',
            items: [{
                text: 'Go to Page 1',
                handler: function() {
                    Ext.Router.redirect('page1');  // Page1 এর URL এ রিডিরেক্ট করা
                }
            }, {
                text: 'Go to Page 2',
                handler: function() {
                    Ext.Router.redirect('page2');  // Page2 এর URL এ রিডিরেক্ট করা
                }
            }]
        }]
    }]
});

// Routing configuration
Ext.Router.add({
    ':page': {
        action: 'onPageChange'
    }
});

// Controller to handle page change
Ext.define('MyApp.controller.MainController', {
    extend: 'Ext.app.Controller',
    onPageChange: function(params) {
        var page = params.page;
        var panel = Ext.ComponentQuery.query('panel')[0];
        if (page === 'page1') {
            panel.update('<h1>This is Page 1</h1>');
        } else if (page === 'page2') {
            panel.update('<h1>This is Page 2</h1>');
        }
    }
});

এখানে:

  • Ext.Router.add: এটি URL পাথ যোগ করে, এবং প্রতিটি পাথের জন্য একটি অ্যাকশন নির্ধারণ করে। যেমন: :page হল URL প্যারামিটার যেটি page1 বা page2 হতে পারে।
  • Ext.Router.redirect: এটি রিডিরেক্ট করার জন্য ব্যবহৃত হয়। যখন ইউজার "Go to Page 1" বা "Go to Page 2" ক্লিক করবে, তখন URL পরিবর্তিত হবে এবং onPageChange অ্যাকশন কল হবে।
  • onPageChange: এটি একটি কন্ট্রোলার ফাংশন যা URL অনুযায়ী কনটেন্ট পরিবর্তন করবে।

৩. Nested Views এবং Routing এর সমন্বয়

Nested Views এবং Routing Events একত্রে ব্যবহারের মাধ্যমে আপনি ডাইনামিক এবং ইন্টারেক্টিভ একক পৃষ্ঠার অ্যাপ্লিকেশন (SPA) তৈরি করতে পারেন, যেখানে ভিউ রাউটিং এবং nested (নেস্টেড) ভিউ দ্বারা ব্যবহারকারীর ইন্টারঅ্যাকশন সহ অ্যাপ্লিকেশনটি পরিচালনা হয়।

উদাহরণ: Nested Views এবং Routing একসাথে ব্যবহার করা

Ext.define('MyApp.view.Main', {
    extend: 'Ext.container.Viewport',
    layout: 'fit',
    items: [{
        xtype: 'panel',
        itemId: 'mainPanel',
        html: '<h1>Home Page</h1>',
        dockedItems: [{
            xtype: 'toolbar',
            items: [{
                text: 'Go to Page 1',
                handler: function() {
                    Ext.Router.redirect('page1');  // Redirect to page1 route
                }
            }, {
                text: 'Go to Page 2',
                handler: function() {
                    Ext.Router.redirect('page2');  // Redirect to page2 route
                }
            }]
        }]
    }]
});

// Adding routes for page1 and page2
Ext.Router.add({
    ':page': {
        action: 'onPageChange'
    }
});

// Controller to handle the routes
Ext.define('MyApp.controller.MainController', {
    extend: 'Ext.app.Controller',
    onPageChange: function(params) {
        var page = params.page;
        var panel = Ext.ComponentQuery.query('#mainPanel')[0];  // Targeting main panel
        if (page === 'page1') {
            panel.update('<h1>This is Page 1</h1>');
            panel.add({ xtype: 'button', text: 'Click Me!' }); // Add nested button to page 1
        } else if (page === 'page2') {
            panel.update('<h1>This is Page 2</h1>');
            panel.add({ xtype: 'button', text: 'Click Here!' }); // Add nested button to page 2
        }
    }
});

এখানে:

  • Ext.Router.redirect এবং Ext.Router.add ব্যবহার করে আমরা ভিউ রাউটিং এবং URL চেঞ্জ নিয়ন্ত্রণ করছি।
  • Nested Views: প্রতিটি পৃষ্ঠায় নতুন উপাদান বা নেস্টেড ভিউ (যেমন, বাটন) যোগ করা হচ্ছে, যা ভিউ পরিবর্তনের সাথে যুক্ত।

সারাংশ

  1. Nested Views: একাধিক ভিউ একে অপরের মধ্যে অন্তর্ভুক্ত হয়ে কাজ করে, যেমন একটি প্যানেলে গ্রিড এবং ফর্ম ভিউ, যা অ্যাপ্লিকেশনকে মডুলার এবং স্কেলেবল করে তোলে।
  2. Routing Events: Ext.Router ব্যবহার করে URL রাউটিং এবং ভিউ রাউটিং করা যায়, যা একক পৃষ্ঠার অ্যাপ্লিকেশন (SPA) তৈরি করতে সাহায্য করে।
  3. Nested Views এবং Routing: একে অপরের সাথে যুক্ত করে আপনি ডাইনামিক, ইন্টারঅ্যাক্টিভ, এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারবেন।

এভাবে Nested Views এবং Routing একসাথে ব্যবহারের মাধ্যমে আপনি একটি পূর্ণাঙ্গ SPA (Single Page Application) তৈরি করতে পারবেন যা বিভিন্ন ভিউর মধ্যে সহজে নেভিগেট করা যায়।

Content added By
Promotion