以popup为例,如果想自定义popup的内容,就需要传入html格式的字符串,像下面这样
const position = [117.229619, 31.8, 1521]
map.openPopup(position, "<div>hello mars3d<div/>")
如果html的内容比较复杂,或者一些需要交互的场景,实现起来就非常的繁琐。在vue3.0中可以通过vue对webpackComponent的支持,通过vue的单文件组件实现类似的需求。比如我们需要实现一个带按钮的popup。
- 首先新建一个 button.ce.vue 的文件,注意这里不同于普通的vue文件,扩展命前面的 .ce是必须的
```vue
测试1 测试1
写法就和一个普通的vue单文件组件区别不大
2. 注册webComponent
```typescript
import { defineCustomElement } from "vue"
import MyButton from "./button.ce.vue"
const MyElement = defineCustomElement(MyButton)
customElements.define("my-element", MyElement)
此时我们就可以像使用普通的html一样使用 my-element标签了
- 调用
const position = [117.229619, 31.8, 1521]
map.openPopup(position, "<my-element><my-element/>")