百度地图与Vue有冲突

发布于 2022-09-13 01:16:35 字数 2332 浏览 17 评论 0

先上完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试代码</title>
    <style>
        * {margin: 0;padding: 0;}
        html,body {height: 100%;}
        #container {height: inherit;}
    </style>
</head>
<body>
    <div id="app"></div>
    <div id="container"></div>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.common.dev.js"></script>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                map: null
            },
            mounted() {
                this.initMap()
            },
            methods: {
                initMap() {
                    var script = document.createElement('script')
                    script.src = '//api.map.baidu.com/api?v=3&ak=8BB7F0E5C9C77BD6B9B655DB928B74B6E2D838FD&callback=init'
                    document.body.appendChild(script)

                    window.init = this.init
                },
                //初始化地图
                init() {
                    var map = this.map = new BMap.Map('container', {
                        minZoom: 5,
                        maxZoom: 20,
                        enableMapClick: false
                    })

                    map.centerAndZoom('北京', 12)

                    var start = new BMap.Point(116.310791, 40.003419)
                    var end = new BMap.Point(116.486419, 39.877282)

                    //创建驾车规划
                    var driving = new BMap.DrivingRoute(vm.map, {
                        renderOptions: {
                            map: vm.map
                        },
                        onSearchComplete: function() {
                            //问题:这里1会输出两次,而不使用Vue,只会输出一次
                            console.log(1)
                        }
                    })

                    driving.search(start, end)
                }
            }
        })
    </script>
</body>
</html>

问题在console.log(1)这一段,代码是按照百度地图驾车路线规划稍作了修改,现在出现了输出两次1的情况,而如果不使用Vue,则会输出一次,请问这种情况是哪里出了问题?感谢~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏了南城 2022-09-20 01:16:35

image.png

你这不初始化 vue 不也还是两次嘛?

image.png

vue 的引用都干掉不也还是两次嘛?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文