VUE3的cesium问题

VUE3项目中在onMounted函数初始化了cesium的界面const viewer = new Cesium.Viewer('cesiumContainer', {}),但是不能在其他函数里使用viewer,这个应该怎么解决呢?(我在VUE2里也是这么用的,并没有问题,把初始化代码放在setup函数里则页面加载不出来)

有用望采纳。
在Vue 3中,可使用ref来引用DOM元素或组件实例。在这种情况下,需要在setup函数中创建一个ref,并将其传递给Cesium Viewer的构造函数。然后从ref.value访问viewer对象以在其他函数中使用它。
例程源码如下

<template>
  <div id="cesiumContainer" ref="cesiumContainer"></div>
</template>

<script>
import { onMounted, ref } from 'vue'
import Cesium from 'cesium'

export default {
  setup() {
    const cesiumContainer = ref(null)
    let viewer

    onMounted(() => {
      viewer = new Cesium.Viewer(cesiumContainer.value)
    })

    function doSomethingWithViewer() {
      // 使用viewer
      viewer.camera.flyTo(/*...*/)
    }

    return {
      cesiumContainer,
      doSomethingWithViewer
    }
  }
}
</script>

在此示例中,在setup函数中创建了一个ref,并将其传递给Cesium Viewer的构造函数。在onMounted中,初始化viewer对象。最后,将cesiumContainer和doSomethingWithViewer返回到模板中,在模板中就可以使用了。