Vue Template Refs

নির্দিষ্ট DOM উপাদান উল্লেখ করতে Vue টেমপ্লেট Refs ব্যবহার করুন

Vue টেমপ্লেট Refs

Vue টেমপ্লেট Refs নির্দিষ্ট DOM উপাদান উল্লেখ করতে ব্যবহৃত হয়।

যখন রেফ অ্যাট্রিবিউটটি একটি HTML ট্যাগে সেট করা হয়, ফলে DOM উপাদান$refsউপাদান অন্তর্ভুক্ত করা হবে.

জাভাস্ক্রিপ্টেgetElementById()বাquerySelector()এবং এর মত পদ্ধতির বিকল্প হিসাবে Vue-তে ref বৈশিষ্ট্য$refsআইটেম ব্যবহার করা যেতে পারে.

DOM উপাদান

<p ref="pEl">...</p>

$refs অবজেক্ট

{ pEl: <p>...</p> }

'ref' বৈশিষ্ট্য এবং '$refs' অবজেক্ট

রেফ অ্যাট্রিবিউট সহ HTML ট্যাগ$refsউপাদান যোগ করা, তারপর<script>ট্যাগের মধ্যে থেকে অ্যাক্সেস করা যেতে পারে।

🎯উদাহরণ

আপনার নিজস্ব Vue সার্ভার পান

<p>উপাদান ভিতরে পাঠ প্রতিস্থাপিত হয়.

App.vue:

<template>
  <h1>Example</h1>
  <p>Click the button to put "Hello!" as the text in the green p element.</p>
  <button @click="changeVal">Change Text</button>
  <p ref="pEl">This is the initial text</p>
</template>

<script>
  export default {
    methods: {
      changeVal() {
        this.$refs.pEl.innerHTML = "Hello!";
      }
    }
  }
</script>

নীচে আরেকটি উদাহরণ, যেখানে$refsএক ট্যাগের মান অন্য ট্যাগে কপি করতে অবজেক্ট ব্যবহার করা হয়।

<template>
  <h1>Example</h1>
  <p ref="p1">Click the button to copy this text into the paragraph below.</p>
  <button @click="transferText">Transfer text</button>
  <p ref="p2">...</p>
</template>

<script>
  export default {
    methods: {
      transferText() { 
        this.$refs.p2.innerHTML = this.$refs.p1.innerHTML;
      }
    }
  };
</script>

💡Refs এর সুবিধা:

রেফগুলি সরাসরি DOM উপাদানগুলি অ্যাক্সেস করার একটি পরিষ্কার এবং বর্ণনামূলক উপায় সরবরাহ করে। তারা Vue এর কুইজ সিস্টেমের সাথে ভালভাবে সংহত করে এবং উপাদান শনাক্তকারী ব্যবহার করার চেয়ে আরও বেশি টাইপ-নিরাপত্তা প্রদান করে।

'$refs' থেকে ইনপুট মান পাওয়া যাচ্ছে

$refsঅবজেক্টের অন্তর্ভুক্ত একটি এইচটিএমএল এলিমেন্টের ভিতরে আমরা যে কোনো অ্যাট্রিবিউট অ্যাক্সেস করতে পারি।

<template>
  <h1>Example</h1>
  <p>Start writing inside the input element, and the text will be copied into the last paragraph by the use of the '$refs' object.</p>
  <input ref="inputEl" @input="getRefs" placeholder="Write something..">
  <p ref="pEl"></p>
</template>

<script>
  export default {
    methods: {
      getRefs() { 
        this.$refs.pEl.innerHTML = this.$refs.inputEl.value;
      }
    }
  };
</script>

⚠️গুরুত্বপূর্ণ নোট:

Refs শুধুমাত্র উপাদান রেন্ডারিং পরে পপুলেট করা হয়. আপনি টেমপ্লেট আছে$refsআপনি যদি অ্যাক্সেস করার চেষ্টা করেন তবে এটি সংজ্ঞায়িত করা হয় না। Refsmounted()শুধুমাত্র জীবনচক্র হুক বা পদ্ধতি/গণিত বৈশিষ্ট্যগুলিতে অ্যাক্সেসযোগ্য হওয়া উচিত।

v-এর সাথে 'রেফ' ব্যবহার করা

রেফ অ্যাট্রিবিউট সহv-forএইচটিএমএল উপাদান দিয়ে তৈরি$refsবস্তুতে একটি অ্যারে যোগ করা হয়।

<template>
  <h1>Example</h1>
  <p>Click the button to reveal the 3rd list element stored as an array element in the $refs object.</p>
  <button @click="getValue">Get the 3rd list element</button><br>
  <ul>
    <li v-for="x in liTexts" ref="liEl">{{ x }}</li>
  </ul>
  <pre>{{ thirdEl }}</pre>
</template>

<script>
  export default {
    data() {
      return {
        thirdEl: ' ',
        liTexts: ['Apple','Banana','Kiwi','Tomato','Lichi']
      }
    },
    methods: {
      getValue() { 
        this.thirdEl = this.$refs.liEl[2].innerHTML;
        console.log("this.$refs.liEl = ",this.$refs.liEl);
      }
    }
  };
</script>

<style>
pre {
  background-color: lightgreen;
  display: inline-block;
}
</style>

v-forসঙ্গে refs ব্যবহার করার সময়$refs.liElএকটি অ্যারে, যেখানে প্রতিটি উপাদান সংশ্লিষ্ট DOM উপাদানের একটি রেফারেন্স ধারণ করে।

Vue টেমপ্লেট Refs টিউটোরিয়াল

Refs নির্দিষ্ট DOM উপাদান উল্লেখ করতে ব্যবহার করা হয়.

দ্বিতীয়টি হল যখন উপাদানটি লোড করা হয়<p>অনুপস্থিত কোড প্রদান করুন যাতে ট্যাগে 'হ্যালো ওয়ার্ল্ড' প্রদর্শিত হয়।

✏️Vue টেমপ্লেট Refs টিউটোরিয়াল

<template>
  <p>This is just some text.</p>
  <p _____>This is the initial text</p>
</template>

<script>
  export default {
    mounted() {
      this._____.pEl.innerHTML = "Hello World!";
    }
  };
</script>

নীচের বিকল্পগুলি থেকে সঠিক উত্তর চয়ন করুন:

ref="pEl" এবং $ref
✗ ভুল! $ref একটি বৈধ বস্তুর নাম নয়
id="pEl" এবং getElementById
✗ ভুল! এটি একটি Vue রেফ নয়, এটি সাধারণ জাভাস্ক্রিপ্ট
ref="pEl" এবং $refs
✓ ঠিক আছে! 'ref="pEl"' টেমপ্লেটের উপাদানটির একটি রেফারেন্স তৈরি করে, এবং '$refs' হল মাউন্টেড() হুকে সেই উপাদানটি অ্যাক্সেস করার জন্য সঠিক বস্তু।
:ref="pEl" এবং this.refs
✗ ভুল! :ref এর প্রয়োজন নেই, এবং this.refs সঠিক সিনট্যাক্স নয়

টেমপ্লেট Refs সাধারণ ব্যবহারের ক্ষেত্রে

ইনপুট ফোকাস

ফর্ম খোলার সময় ইনপুট ক্ষেত্রগুলিতে ফোকাস সেট করা

this.$refs.inputField.focus()

রূপান্তর পরিমাপ

উপাদান মাত্রা বা অবস্থান পান

this.$refs.box.offsetWidth

মিডিয়া নিয়ন্ত্রণ

ভিডিও/অডিও উপাদান পরিচালনা করুন

this.$refs.videoPlayer.play()

তৃতীয় পক্ষের লাইব্রেরি

DOM-ভিত্তিক লাইব্রেরির সাথে ইন্টিগ্রেশন

new ThirdPartyLib(this.$refs.container)

Refs ব্যবহারের জন্য সর্বোত্তম অনুশীলন

উল্লেখযোগ্য নাম ব্যবহার করুন:রেফের নামগুলি বর্ণনামূলক হওয়া উচিত (যেমন, 'submitButton', 'emailInput')।
Refs সামান্য ব্যবহার করুন:Vue-এর প্রতিক্রিয়াশীল ডেটা বাইন্ডিং বেশিরভাগ অ্যাপ্লিকেশনের জন্য Refs-এর চেয়ে পছন্দ করা হয়
টেমপ্লেটে Refs ব্যবহার করবেন না:$refs শুধুমাত্র রেন্ডার করার পরে পপুলেট করা হয়, তাই টেমপ্লেটে সরাসরি ব্যবহার করবেন না
উপাদান উপলব্ধ কিনা পরীক্ষা করুন:রেফ উপাদানগুলি অ্যাক্সেস করার আগে বিদ্যমান কিনা তা পরীক্ষা করুন

🔧কখন Refs ব্যবহার করবেন:

আপনি যখন DOM উপাদানগুলির সাথে সরাসরি ইন্টারঅ্যাক্ট করতে চান শুধুমাত্র তখনই Refs ব্যবহার করুন, উদাহরণস্বরূপ:

  • ইনপুট মনোযোগ পরিচালনা
  • রূপান্তর পরিমাপ
  • তৃতীয় পক্ষের DOM লাইব্রেরিগুলিকে একীভূত করা৷
  • ভিডিও/অডিও নিয়ন্ত্রণ
  • রূপান্তর বা অ্যানিমেশন শুরু করা