以popup为例,如果想自定义popup的内容,就需要传入html格式的字符串,像下面这样

    1. const position = [117.229619, 31.8, 1521]
    2. map.openPopup(position, "<div>hello mars3d<div/>")

    如果html的内容比较复杂,或者一些需要交互的场景,实现起来就非常的繁琐。在vue3.0中可以通过vue对webpackComponent的支持,通过vue的单文件组件实现类似的需求。比如我们需要实现一个带按钮的popup。

    1. 首先新建一个 button.ce.vue 的文件,注意这里不同于普通的vue文件,扩展命前面的 .ce是必须的 ```vue

    1. 写法就和一个普通的vue单文件组件区别不大
    2. 2. 注册webComponent
    3. ```typescript
    4. import { defineCustomElement } from "vue"
    5. import MyButton from "./button.ce.vue"
    6. const MyElement = defineCustomElement(MyButton)
    7. customElements.define("my-element", MyElement)

    此时我们就可以像使用普通的html一样使用 my-element标签了

    1. 调用
      1. const position = [117.229619, 31.8, 1521]
      2. map.openPopup(position, "<my-element><my-element/>")