面试题答案
一键面试- 引入必要的依赖和钩子函数
<template>
<div id="map-container"></div>
</template>
<script setup>
import { onMounted, onUnmounted } from 'vue';
// 假设使用高德地图,引入高德地图JS API
import AMap from 'AMap';
- 定义地图实例变量并在
onMounted
中初始化地图
let map = null;
onMounted(() => {
map = new AMap.Map('map-container', {
zoom: 13,
center: [116.397428, 39.90923]
});
});
- 在
onUnmounted
中销毁地图实例以避免内存泄漏
onUnmounted(() => {
if (map) {
map.destroy();
map = null;
}
});
</script>
- 样式设置
#map-container {
width: 100%;
height: 400px;
}
关键步骤总结:
- 在
setup
中定义地图实例变量,初始值设为null
。 - 使用
onMounted
钩子函数,在组件挂载后创建地图实例,传入地图容器的id和初始化配置。 - 使用
onUnmounted
钩子函数,在组件卸载时检查地图实例是否存在,如果存在则调用地图实例的destroy
方法销毁地图,并将地图实例变量设为null
,以释放内存,防止内存泄漏。