Vue <slot> Element
উদাহরণ
আপনার নিজস্ব Vue সার্ভার পান
নেস্টেড <slot> উপাদান ব্যবহার করে মূল উপাদান থেকে শিশু উপাদানের <টেমপ্লেট>-এ বিষয়বস্তু স্থাপন করা।
পিতামাতা
বিষয়বস্তু প্রদান করে
<slot>
ক্যাচার
শিশু উপাদান
বিষয়বস্তু পায়
<template>
<div>
<p>SlotComp.vue</p>
<slot></slot>
</div>
</template>
নীচে আরো উদাহরণ দেখুন.
সংজ্ঞা এবং প্রয়োগ
একটি নেস্টেড <slot> উপাদান একটি মূল উপাদান থেকে প্রাপ্ত সামগ্রী স্থাপন করতে ব্যবহৃত হয়।
যখন একটি চাইল্ড এলিমেন্ট কল করা হয়, তখন স্টার্ট- এবং এন্ড-ট্যাগের মধ্যে সরবরাহ করা বিষয়বস্তু সেই চাইল্ড এলিমেন্টের মধ্যে <slot> এলিমেন্টের অবস্থানে শেষ হয়।
একটি উপাদান একাধিক <slot> ধারণ করতে পারে, এবং স্লটগুলিকে নাম প্রপ দিয়ে নামকরণ করা যেতে পারে। এই জাতীয় উপাদানগুলির বিভিন্ন নামযুক্ত স্লট থাকায়, ভি-স্লট কৌশলটি নির্দিষ্ট স্লটে সামগ্রী পাঠাতে ব্যবহার করা যেতে পারে। (উদাহরণ 3)
<slot> এলিমেন্টের স্টার্ট- এবং এন্ড-ট্যাগের মধ্যে বিষয়বস্তু ফ্যালব্যাক কন্টেন্ট হিসেবে ব্যবহার করা হয় যদি অভিভাবক দ্বারা কোন বিষয়বস্তু প্রদান করা না হয়। (উদাহরণ 5)
<slot> প্রপস সহ মূল উপাদানে তথ্য প্রেরণ করা যেতে পারে। (উদাহরণ 8)
গুরুত্বপূর্ণ নোট:
<slot> উপাদানটি শুধুমাত্র সামগ্রীর জন্য একটি স্থানধারক, <slot> উপাদানটি নিজেই একটি DOM উপাদান হিসাবে রেন্ডার করা হয় না।
প্রপস
| প্রপস | ব্যাখ্যা |
|---|---|
| [যে কোনো] | স্লটে সংজ্ঞায়িত প্রপগুলি 'স্কোপড স্লট' গঠন করে, এবং এই ধরনের প্রপগুলি পিতামাতার কাছে পাঠানো হয়। |
| name | একটি স্লটের নাম দেয় যাতে বিষয়বস্তু নির্দিষ্ট স্লটে প্যারেন্ট ভি-স্লট কৌশল সহ চালানো যায়। |
আরো উদাহরণ
উদাহরণ 1
একটি কার্টের মত চেহারা অর্জন করতে বড় গতিশীল এইচটিএমএল কন্টেন্ট ব্লকের চারপাশে মোড়ানোর জন্য স্লট ব্যবহার করা।
App.vue:
<template>
<h3>Slots in Vue</h3>
<p>We create card-like div boxes from the foods array.</p>
<div id="wrapper">
<slot-comp v-for="x in foods">
<img v-bind:src="x.url">
<h4>{{x.name}}</h4>
<p>{{x.desc}}</p>
</slot-comp>
</div>
</template>
SlotComp.vue:
<template>
<div> <!-- This div makes the card-like appearance -->
<slot></slot>
</div>
</template>
<script></script>
<style scoped>
div {
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
border-radius: 10px;
margin: 10px;
}
</style>
বর্ণনা:
যখন বিষয়বস্তু <slot> সম্বলিত একটি উপাদান প্রবেশ করে, তখন আমরা <slot> এর চারপাশে একটি div ব্যবহার করি এবং স্থানীয় স্তরে <div> ফর্ম্যাট করি যাতে এটি আমাদের অ্যাপ্লিকেশনের অন্যান্য ডিভগুলিকে প্রভাবিত না করে বিষয়বস্তুর চারপাশে কার্টের মতো চেহারা তৈরি করে।
উদাহরণ 2
পারদ তৈরি করতে একটি স্লট ব্যবহার করে।
<template>
<h3>Reusable Slot Cards</h3>
<p>We create card-like div boxes from the foods array.</p>
<p>We also create a card-like footer by reusing the same component.</p>
<div id="wrapper">
<slot-comp v-for="x in foods">
<img v-bind:src="x.url">
<h4>{{x.name}}</h4>
</slot-comp>
</div>
<footer>
<slot-comp>
<h4>Footer</h4>
</slot-comp>
</footer>
</template>
উদাহরণ 3
একটি নির্দিষ্ট স্লটে সামগ্রী পাঠাতে স্লটের নাম ব্যবহার করা।
SlotComp.vue:
<h3>Component</h3>
<div>
<slot name="topSlot"></slot>
</div>
<div>
<slot name="bottomSlot"></slot>
</div>
App.vue:
<h1>App.vue</h1>
<p>The component has two div tags with one slot in each.</p>
<slot-comp v-slot:bottomSlot>'Hello!'</slot-comp>
উদাহরণ 4
একটি উপাদানের দুটি স্লট রয়েছে এবং উপাদানটিতে পাঠানো সামগ্রী উভয় স্লটেই শেষ হয়৷
App.vue:
<h1>App.vue</h1>
<p>The component has two div tags with one slot in each.</p>
<slot-comp>'Hello!'</slot-comp>
SlotComp.vue:
<h3>Component</h3>
<div>
<slot></slot>
</div>
<div>
<slot></slot>
</div>
উদাহরণ 5
একটি স্লটে ফলব্যাক সামগ্রী ব্যবহার করা যাতে পিতামাতার কাছ থেকে কোনও সামগ্রী পরিবেশিত না হলে কিছু রেন্ডার করা হয়৷
App.vue:
<template>
<h3>Slots Fallback Content</h3>
<p>A component without content provided can have fallback content in the slot tag.</p>
<slot-comp>
<!-- Empty -->
</slot-comp>
<slot-comp>
<h4>This content is provided from App.vue</h4>
</slot-comp>
</template>
SlotComp.vue:
<template>
<div>
<slot>
<h4>This is fallback content</h4>
</slot>
</div>
</template>
উদাহরণ 6
একটি নামবিহীন স্লট হবে অভিভাবকের কাছ থেকে সামগ্রীর জন্য ডিফল্ট স্লট৷
SlotComp.vue:
<h3>Component</h3>
<div>
<slot></slot>
</div>
<div>
<slot name="bottomSlot"></slot>
</div>
App.vue:
<h1>App.vue</h1>
<p>The component has two div tags with one slot in each.</p>
<slot-comp>'Hello!'</slot-comp>
উদাহরণ 7
ডিফল্ট স্লট স্পষ্টভাবে সংজ্ঞায়িত করতে v-slot:default ব্যবহার করে।
SlotComp.vue:
<h3>Component</h3>
<div>
<slot></slot>
</div>
<div>
<slot name="bottomSlot"></slot>
</div>
App.vue:
<h1>App.vue</h1>
<p>The component has two div tags with one slot in each.</p>
<slot-comp v-slot:default>'Default slot'</slot-comp>
উদাহরণ 8
স্কোপড স্লট: খাবারের নাম অভিভাবককে বলতে স্লটে 'foodName' প্রপ ব্যবহার করে।
SlotComp.vue:
<template>
<slot
v-for="x in foods"
:key="x"
:foodName="x"
></slot>
</template>
<script>
export default {
data() {
return {
foods: ['Apple','Pizza','Rice','Fish','Cake']
}
}
}
</script>
App.vue:
<slot-comp v-slot="food">
<h2>{{ food.foodName }}</h2>
</slot-comp>
উদাহরণ 9
স্কোপড স্লট: বস্তুর সাথে অর্ডারের উপর ভিত্তি করে অভিভাবকের সাথে একাধিক জিনিস যোগাযোগ করতে স্লটে প্রপস ব্যবহার করে।
SlotComp.vue:
<template>
<slot
v-for="x in foods"
:key="x.name"
:foodName="x.name"
:foodDesc="x.desc"
:foodUrl="x.url"
></slot>
</template>
<script>
export default {
data() {
return {
foods: [
{ name: 'Apple', desc: 'Apples are a type of fruit that grow on trees.', url: 'img_apple.svg' },
{ name: 'Pizza', desc: 'Pizza has a bread base with tomato sauce, cheese, and toppings on top.', url: 'img_pizza.svg' },
{ name: 'Rice', desc: 'Rice is a type of grain that people like to eat.', url: 'img_rice.svg' },
{ name: 'Fish', desc: 'Fish is an animal that lives in water.', url: 'img_fish.svg' },
{ name: 'Cake', desc: 'Cake is something sweet that tastes good but is not considered healthy.', url: 'img_cake.svg' }
]
}
}
}
</script>
App.vue:
<slot-comp v-slot="food">
<hr>
<h2>{{ food.foodName }}<img :src=food.foodUrl></h2>
<p>{{ food.foodDesc }}</p>
</slot-comp>
উদাহরণ 10
নামযুক্ত স্কোপড স্লট ব্যবহার করে একটি পাঠ্যকে "বাম স্লটে" এবং আরেকটি পাঠ্যকে "রাইট স্লট"-এ রাখতে হবে।
SlotComp.vue:
<template>
<slot
name="leftSlot"
:text="leftText"
></slot>
<slot
name="rightSlot"
:text="rightText"
></slot>
</template>
<script>
export default {
data() {
return {
leftText: 'This text belongs to the LEFT slot.',
rightText: 'This text belongs to the RIGHT slot.'
}
}
}
</script>
App.vue:
<slot-comp #leftSlot="leftProps">
<div>{{ leftProps.text }}</div>
</slot-comp>
<slot-comp #rightSlot="rightProps">
<div>{{ rightProps.text }}</div>
</slot-comp>
ভিউ টিউটোরিয়াল
ব্যায়াম দিয়ে নিজেকে পরীক্ষা করুন
অভিভাবক থেকে শিশু উপাদানের সামগ্রী পেতে ক্যাচ উপাদান কী?
<!-- Child Component -->
<template>
<div>
<p>Component Title</p>
</div>
</template>