Skip to content
এই পৃষ্ঠায়

Custom Elements API

defineCustomElement()

এই পদ্ধতিটি defineComponent হিসাবে একই যুক্তি গ্রহণ করে, কিন্তু পরিবর্তে একটি নেটিভ কাস্টম এলিমেন্ট ক্লাস প্রদান করে। নির্মাণকারী

  • Type

    ts
    function defineCustomElement(
      component:
        | (ComponentOptions & CustomElementsOptions)
        | ComponentOptions['setup'],
      options?: CustomElementsOptions
    ): {
      new (props?: object): HTMLElement
    }
    
    interface CustomElementsOptions {
      styles?: string[]
    
      // the following options are 3.5+
      configureApp?: (app: App) => void
      shadowRoot?: boolean
      nonce?: string
    }

    প্রকার পঠনযোগ্যতার জন্য সরলীকৃত।

  • বিস্তারিত

সাধারণ কম্পোনেন্ট বিকল্পগুলি ছাড়াও, defineCustomElement() এছাড়াও কাস্টম-কম্পোনেন্ট-নির্দিষ্ট কিছু বিকল্পকে সমর্থন করে:

  • স্টাইল: CSS প্রদানের জন্য ইনলাইনযুক্ত CSS স্ট্রিংগুলির একটি অ্যারে যা কম্পোনেন্টটির ছায়া রুটে ইনজেকশন করা উচিত।

  • configureApp : একটি ফাংশন যা কাস্টম কম্পোনেন্টের জন্য Vue অ্যাপের উদাহরণ কনফিগার করতে ব্যবহার করা যেতে পারে।

  • shadowRoot : বুলিয়ান, ডিফল্ট সত্য। শ্যাডো রুট ছাড়াই কাস্টম এলিমেন্ট রেন্ডার করতে false এ সেট করুন। এর মানে <style> কাস্টম এলিমেন্টে SFC আর এনক্যাপসুলেট করা হবে না।

  • nonce : স্ট্রিং, প্রদান করা হলে, স্টাইল ট্যাগে ইনজেকশন করা স্টাইল ট্যাগগুলিতে nonce অ্যাট্রিবিউট হিসেবে সেট করা হবে ছায়া মূল

মনে রাখবেন যে কম্পোনেন্টের অংশ হিসাবে পাস করার পরিবর্তে, এই বিকল্পগুলি একটি দ্বিতীয় আর্গুমেন্টের মাধ্যমেও পাস করা যেতে পারে:

js
import Element from './MyElement.ce.vue'

defineCustomElement(Element, {
  configureApp(app) {
    // ...
  }
})

রিটার্ন মান হল একটি কাস্টম এলিমেন্ট কনস্ট্রাক্টর যা customElements.define() ব্যবহার করে নিবন্ধিত হতে পারে।

useHost()

একটি রচনা API সহায়ক যা বর্তমান Vue কাস্টম কম্পোনেন্টের হোস্ট কম্পোনেন্ট প্রদান করে।

useShadowRoot()

একটি কম্পোজিশন API সাহায্যকারী যা বর্তমান Vue কাস্টম কম্পোনেন্টের শ্যাডো রুট প্রদান করে।

this.$host

একটি Options API প্রপার্টি যা বর্তমান Vue কাস্টম এলিমেন্টের হোস্ট এলিমেন্টকে প্রকাশ করে।

Custom Elements API has loaded