Rumah > hujung hadapan web > View.js > teks badan

Cara untuk membuat komponen secara manual kepada elemen tertentu dalam Vue3

PHPz
Lepaskan: 2023-05-21 13:59:18
ke hadapan
2292 orang telah melayarinya

Tukar komponen kepada elemen tersuai

Dokumentasi: Vue dan Komponen Web | Vue.js (vuejs.org)

Vue menyediakan sokongan yang baik untuk Komponen Web. Komponen boleh ditukar kepada elemen tersuai menggunakan defineCustomElement. Anda kemudiannya boleh memasukkannya secara bebas ke dalam nod DOM.

import { defineCustomElement } from 'vue'

const MyVueElement = defineCustomElement({
  // 这里是同平常一样的 Vue 组件选项
  props: {},
  emits: {},
  template: `...`,

  // defineCustomElement 特有的:注入进 shadow root 的 CSS
  styles: [`/* inlined css */`]
})

// 注册自定义元素
// 注册之后,所有此页面中的 `<my-vue-element>` 标签
// 都会被升级
customElements.define(&#39;my-vue-element&#39;, MyVueElement)

// 你也可以编程式地实例化元素:
// (必须在注册之后)
document.body.appendChild(
  new MyVueElement({
    // 初始化 props(可选)
  })
)
Salin selepas log masuk

Selain itu, adalah mungkin untuk menukar SFC (Komponen Fail Tunggal) kepada elemen tersuai.

Dokumentasi: sfc sebagai elemen tersuai

import { defineCustomElement } from &#39;vue&#39;
import Example from &#39;./Example.ce.vue&#39;

console.log(Example.styles) // ["/* 内联 css */"]

// 转换为自定义元素构造器
const ExampleElement = defineCustomElement(Example)

// 注册
customElements.define(&#39;my-example&#39;, ExampleElement)
Salin selepas log masuk

Perlu diambil perhatian bahawa defineCustomElement akan menggunakan Shadow DOM untuk memaparkan elemen. Kaedah ini akan menyebabkan pengasingan gaya dan gaya luaran tidak akan dapat digunakan pada bahagian dalam komponen. Jika anda menggunakan pustaka komponen atau bergantung pada beberapa gaya luaran, ingat untuk mengimport gaya ini sekali lagi.

Berbilang contoh aplikasi Vue

Ingat semasa mencipta projek, kami menggunakan createApp untuk mencipta contoh App dan kemudian memasangnya dalam #app . Malah, berbilang contoh Apl, iaitu berbilang aplikasi Vue, boleh wujud dalam persekitaran DOM pada masa yang sama.

Dengan menggunakan ini, anda boleh mencipta tika Apl sekali lagi dan melekapkannya pada elemen DOM tertentu.

import YouComponent from "./YouComponent.vue";  
  
// 创建一个新的 Vue 应用  
const app = createApp(YouComponent);  
// 将应用挂载到自定义的 DOM 元素上  
app.mount("#you-element");
Salin selepas log masuk

Dengan cara ini, komponen boleh dipaparkan secara normal. Penyediaan dan suntikan komponen akan menjadi tidak sah kerana ia bukan milik aplikasi asal.

Bagaimana untuk berkomunikasi antara komponen? Anda boleh menggunakan acara tersuai, atau createEventHook |. Selain itu, anda juga boleh memanfaatkan prinsip responsif Vue3, gunakan ref atau reactive untuk mencipta objek responsif yang berasingan, dan kemudian merujuknya dalam komponen berbeza untuk mencapai penyegerakan data dua hala.

Atas ialah kandungan terperinci Cara untuk membuat komponen secara manual kepada elemen tertentu dalam Vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!