Zuerst schreiben wir zunächst eine Komponente, um den Inhalt der Dropdown-Box anzuzeigen. Der Komponentenname beginnt mit: Select.vue Verschieben Sie die als Komponenteninstanz gerenderte Dropdown-Box-Komponente an die entsprechende Stelle auf der Seite. In vue3 lautet die Kernlogik beim Rendern eines Vonde wie folgt:
<template> <div class="select-wrap"> <span>福利商城</span> <span>Saas平台</span> <span>活动定制</span> </div> </template>
Um den Speicherort des Komponenten-Renderings zu kennen, müssen wir die übergeordnete Komponente kennen (dh den Dom-Speicherort des Produktservices). um die Dom-Informationen der übergeordneten Komponente zu erhalten.
import { createVNode, h, render, VNode } from 'vue' import component from "./component.vue" //1、创造包裹虚拟节点的div元素 const container = document.createElement('div'); //2、创造虚拟节点 vm = createVNode(component) //3、将虚拟节点创造成真实DOM render (vm, container) //4、将渲染的结果放到body下 document.body.appendChild(container.firstElementChild)
// App.vue <div ref="select"> <span class="name">产品服务</span> </div> <script setup > import { ref } from "vue" const select = ref() </script>
// App.vue <div ref="select"> <span class="name">产品服务</span> </div> <script setup > import { ref } from "vue" import Select from "./Select.vue" const select = ref() function createDom(){ //1、创造包裹虚拟节点的div元素 const container = document.createElement('div'); //2、创造虚拟节点 let vm = createVNode(Select) //3、将虚拟节点创造成真实DOM render (vm, container) //4、将渲染的结果放到body下 document.body.appendChild(container.firstElementChild) } </script>
function createDom(){ const left = select.value.offsetLeft + "px" const width = select.value.getBoundingClientRect().left + "px" const props = { width, left, } //1、创造包裹虚拟节点的div元素 const container = document.createElement('div'); //2、创造虚拟节点 let vm = createVNode(Select,props) //3、将虚拟节点创造成真实DOM render (vm, container) //4、将渲染的结果放到body下 document.body.appendChild(container.firstElementChild) }
Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Menü-Dropdown-Feld in vue3 über die Renderfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!