smalljs$molঅনুসন্ধান⌘ Kডকুমেন্টেশনপ্লেগ্রাউন্ডতুলনাইকোসিস্টেমসম্পর্কেBN
মানসিক মডেলGetting Startedপরিচিতিমানসিক মডেলশুরু করাTypeScript থেকে view.treeপ্রকল্পের কাঠামোটুলিংEssentialsইনস্টলেশনভিউস্টেট ও রিয়্যাক্টিভিটিরাউটিংরেন্ডারিংটেস্টিংডিপ্লয়সমস্যা সমাধানDataডেটা ফেচিংডেটা স্কিমাGiper BazaMoreশোকেসReact, Vue ও Svelte থেকেকুকবুকAdvancedপ্লাগইনমডিউল মেটাডেটাঅফলাইনগোস্ট ভিউAboutসাধারণ জিজ্ঞাসাটিমরিলিজAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

মানসিক মডেল

আপনি যদি React বা Vue থেকে আসেন, $mol-এ প্রথম কয়েকটা দিন কাটে এমন সব জিনিস খুঁজে: computed, watch, useEffect, onMounted, লাইফসাইকেল হুকের ভেতরে একটা fetch — যেগুলো আসলে নেই। এগুলো API-এর কোথাও লুকানো নয়; মডেলে এদের জায়গাই নেই। এই পৃষ্ঠাটি সেই মডেলের পাঁচ মিনিটের সংস্করণ। ভিউ পড়ার আগে এটি পড়ুন, আর যখনই কোনো চেনা নাম হারিয়ে যাবে, ফিরে আসুন।

পুল, পুশ নয়

কেউ না পড়লে কিছুই গণনা হয় না। ভিউ তার প্রপার্টিগুলো পড়ে রেন্ডার হয়; প্রতিটি প্রপার্টি যা দরকার তা পড়ে; নির্ভরতার শেকল এই পড়াগুলো থেকেই নিজে নিজে গড়ে ওঠে। ঘোষণা করার মতো কোনো সাবস্ক্রিপশন নেই, রেজিস্টার করার মতো কোনো watch নেই: পড়াটাই সাবস্ক্রিপশন।1$my_profile $mol_view2 sub /3 <= Name $mol_view4 sub / <= name \1namespace $.$$ {2 export class $my_profile extends $.$my_profile {3 @ $mol_mem4 user() {5 return this.$.$mol_fetch.json( 'https://api.example.com/me' ) as { name: string }6 }7 name() {8 return this.user().name9 }10 }11}Name রেন্ডার হতে গিয়ে name() পড়ে, name() পড়ে user(), আর user() নেটওয়ার্কে যায়। কেউ ভিউকে রিকোয়েস্টের কথা বলেনি, কেউ রিকোয়েস্টকে ভিউয়ের কথা বলেনি। user() বদলালে যারা এটি পড়েছিল সবাই পুনরায় গণনা হয়, আর কিছুই হয় না।

কোনো লাইফসাইকেল নেই

mounted নেই, useEffect নেই, created নেই। একটি প্রপার্টি পড়ার মাধ্যমেই ডেটা চাওয়া হয়, আর ভিউ রেন্ডার হওয়ার সময় তার প্রপার্টিগুলো পড়ে। তাই উপরের উদাহরণটি ঠিক যে মুহূর্তে $my_profile স্ক্রিনে আসে সেই মুহূর্তেই ইউজার লোড করে, তার আগে নয়। ভিউ স্ক্রিন থেকে সরে গেলে আর কেউ user() পড়ে না, আর সেলটি ভিউয়ের সঙ্গেই ছেড়ে দেওয়া হয়।"মাউন্টে ফেচ" প্যাটার্নের গোটা বিকল্প এটুকুই: ভিউ যা দরকার তা চায়, আর কখন চাওয়া হবে তা ফ্রেমওয়ার্ক ঠিক করে। লোডিং কোনো পৃষ্ঠার ইভেন্টের সঙ্গে জোড়া নয়; দৃশ্যমান থাকার সঙ্গে জোড়া।

প্রপার্টি মানেই একটি সেল

ঐচ্ছিক আর্গুমেন্টসহ একটিমাত্র মেথড একই সঙ্গে গেটার, সেটার, গণিত মান ও স্টেট:1@ $mol_mem2count( next?: number ) {3 return next ?? 04}আর্গুমেন্ট ছাড়া ডাকলে পড়ে, আর্গুমেন্টসহ ডাকলে লেখে। @ $mol_mem মেথডটিকে এমন একটি ক্যাশড সেলে পরিণত করে, যা পড়া কিছু বদলালে পুনরায় গণনা হয়। গণিত মান কেবলই এমন একটি @ $mol_mem মেথড যা অন্য মেথড পড়ে। ওয়াচারের দরকার নেই: সাইড ইফেক্ট একটি ইভেন্টের অধীন, আর ইভেন্ট হ্যান্ডলার হলো @ $mol_action দিয়ে চিহ্নিত একটি মেথড।1@ $mol_mem2doubled() {3 return this.count() * 24}5 6@ $mol_action7increment() {8 this.count( this.count() + 1 )9}
GitHub-এ এই পৃষ্ঠা সম্পাদনা করুনএটি কি সহায়ক ছিল?হ্যাঁনাপূর্ববর্তীপরিচিতিপরবর্তীশুরু করা
এই পৃষ্ঠায়পুল, পুশ নয়কোনো লাইফসাইকেল নেইপ্রপার্টি মানেই একটি সেলসিঙ্ক্রোনাস কোড, যা অপেক্ষা করেসবকিছুই একটি ওভাররাইডসোর্স কীভাবে পড়বেননামপরবর্তী
Type to search the documentation.