<script lang="ts">
import { defineComponent, ref, nextTick, unref, onMounted } from 'vue';
import { useScript } from '/@/hooks/web/useScript';
const BAI_DU_MAP_URL = 'https://api.map.baidu.com/getscript?v=3.0&ak=xxx';
export default defineComponent({
setup() {
const wrapRef = ref<HTMLDivElement | null>(null);
const { toPromise } = useScript({ src: BAI_DU_MAP_URL });
async function initMap() {
await toPromise();
await nextTick();
const wrapEl = unref(wrapRef);
if (!wrapEl) return;
const BMap = (window as any).BMap;
const map = new BMap.Map(wrapEl);
const point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom(true);
}
onMounted(() => {
initMap();
});
return { wrapRef };
},
})
</script>
vue 类组件
<script lang="ts">
import { ref, nextTick, unref } from 'vue'
import {Vue} from 'vue-property-decorator'
import { useScript } from '/@/hooks/web/useScript'
const BAI_DU_MAP_URL = 'https://api.map.baidu.com/getscript?v=3.0&ak=xxx';
export default class LogisticsDetail extends Vue {
private wrapRef = ref<HTMLDivElement | null>(null)
private toPromise = useScript({ src: BAI_DU_MAP_URL })
async initMap() {
await this.toPromise();
await nextTick();
const wrapEl = unref(this.wrapRef);
if (!wrapEl) return;
const BMap = (window as any).BMap;
const map = new BMap.Map(wrapEl);
const point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom(true);
}
mounted() {
this.initMap()
}
}
</script>
const { toPromise } = useScript({ src: BAI_DU_MAP_URL });
-->private toPromise = useScript({ src: BAI_DU_MAP_URL })
err: Uncaught (in promise) TypeError: this.toPromise is not a function
如何编写 use vue-class-component?help me
如何编写 use vue-class-component?help me
如何编写 use vue-class-component?help me
如何编写 use vue-class-component