如何在我的 Vue 组件中加载 OpenSeadragon 组件

How can I load an OpenSeadragon component in my Vue Component

我必须在我的 Vue 组件中使用一个名为“OpenSeadragon”的外部 javascript 库。

但是我怎样才能在我的 Vue 组件中加载这个组件呢? 在我的父模板中,我加载了库:

<script src="{{ asset('js/openseadragon.min.js') }}"></script>

这是我的 Vue 测试组件:

<template>
    <div>
        <div id="openseadragon" style="width: 100%; height: 600px; border: 1px solid red"></div>
    </div>
</template>

<script>

    export default {
        data(){
            return {

            }
        },
        created() {

           // How can I load openseadragon??
            OpenSeadragon({
                id:              "openseadragon",
                prefixUrl:       "/openseadragon/images/",
                tileSources:     "/example-images/duomo/duomo.dzi"
            });


        },
        methods: {
            //
        }
    }
</script>

然后我得到这个错误:

[Vue warn]: Error in created hook: "TypeError: Cannot read property 'appendChild' of null"

根据 Vue Lifecycle,您应该将函数调用放在 mounted

因为元素 #openseadragon 在调用 mounted 之前不存在。