外部库在.html文件中工作正常,但在quasar项目中则不行
我正在尝试将.html文件中的代码移动到Quasar项目中。当我运行我的.html文件时,代码运行得非常好,但是我收到来自Quasar的错误。 以下是index.html文件中的初始代码:外部库在.html文件中工作正常,但在quasar项目中则不行,html,vue.js,leaflet,react-leaflet,quasar-framework,Html,Vue.js,Leaflet,React Leaflet,Quasar Framework,我正在尝试将.html文件中的代码移动到Quasar项目中。当我运行我的.html文件时,代码运行得非常好,但是我收到来自Quasar的错误。 以下是index.html文件中的初始代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Neshan Map Example (Leaflet)</title>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Neshan Map Example (Leaflet)</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.css" rel="stylesheet" type="text/css">
<script src="https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.js" type="text/javascript"></script>
</head>
<body>
<div id="map" style="width: 600px; height: 450px; background: #eee; border: 2px solid #aaa;"></div>
<script type="text/javascript">
var myMap = new L.Map('map', {
key: 'myKey',
maptype: 'dreamy',
poi: true,
traffic: false,
center: [36.320378,59.571256],
zoom: 14
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar', attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(myMap);
var marker = L.marker([36.320378,59.571256]).addTo(myMap);
var popup = marker.bindPopup('<b>Hello world!</b><br />I am a popup.');
popup.openPopup();
</script>
</body>
</html>
聂山地图示例(单张)
var myMap=新的L.Map('Map'{
密钥:“myKey”,
地图类型:“梦幻”,
是的,
交通:错,
中间:[36.320378,59.571256],
缩放:14
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}',{foo:'bar',attributes:'Map data©;contributors',}).addTo(myMap);
var marker=L.marker([36.320378,59.571256]).addTo(myMap);
var popup=marker.bindpoppup('helloworld!
我是一个弹出窗口');
openPopup();
以下代码是my index.vue:
<template>
<q-page class="flex flex-center">
<link href="https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.css" rel="stylesheet" type="text/css">
<script src="https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.js" type="text/javascript"></script>
<div id="map" style="width: 600px; height: 450px; background: #eee; border: 2px solid #aaa;">></div>
</q-page>
</template>
<script type="text/javascript">
var myMap = new L.Map('map', {
key: 'myKey',
maptype: 'dreamy',
poi: true,
traffic: false,
center: [36.320378,59.571256],
zoom: 14
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar', attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(myMap);
var marker = L.marker([36.320378,59.571256]).addTo(myMap);
var popup = marker.bindPopup('<b>Hello world!</b><br />I am a popup.');
popup.openPopup();
</script>
>
var myMap=新的L.Map('Map'{
密钥:“myKey”,
地图类型:“梦幻”,
是的,
交通:错,
中间:[36.320378,59.571256],
缩放:14
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}',{foo:'bar',attributes:'Map data©;contributors',}).addTo(myMap);
var marker=L.marker([36.320378,59.571256]).addTo(myMap);
var popup=marker.bindpoppup('helloworld!
我是一个弹出窗口');
openPopup();
我从浏览器收到此错误:
模板应该只负责将状态映射到UI。避免在模板中放置带有副作用的标记,例如
,因为它们不会被解析
我也试过:
<template>
<q-page class="flex flex-center">
<link href="https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.css" rel="stylesheet" type="text/css">
<div id="map" style="width: 600px; height: 450px; background: #eee; border: 2px solid #aaa;">></div>
</q-page>
</template>
<script type="text/javascript">
import * as Vue2Leaflet from 'vue2-leaflet'
var myMap = new L.Map('map', {
key: 'myKey',
maptype: 'dreamy',
poi: true,
traffic: false,
center: [36.320378,59.571256],
zoom: 14
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar', attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(myMap);
var marker = L.marker([36.320378,59.571256]).addTo(myMap);
var popup = marker.bindPopup('<b>Hello world!</b><br />I am a popup.');
popup.openPopup();
</script>
>
从“vue2传单”导入*作为vue2传单
var myMap=新的L.Map('Map'{
密钥:“myKey”,
地图类型:“梦幻”,
是的,
交通:错,
中间:[36.320378,59.571256],
缩放:14
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}',{foo:'bar',attributes:'Map data©;contributors',}).addTo(myMap);
var marker=L.marker([36.320378,59.571256]).addTo(myMap);
var popup=marker.bindpoppup('helloworld!
我是一个弹出窗口');
openPopup();
即使我没有从上面的代码中得到任何错误,地图也不会显示在浏览器中。我做错了什么?不是Quasar,是Vue本身删除了带有副作用的标签(Quasar是建立在Vue.js之上的框架) 另外,您正在导入Vue2Floate,它将传单库作为依赖项,但仍然使用来自cdn的js和css文件,而不是Vue2Floate库 我的建议是:
npm安装传单
(如果package.json中没有列出传单)
添加到项目的src
文件夹中的index.template.html文件中
我使用的是quasar版本1.4.5
请记住,使用Quasar Framework,您已经进入了Vue.js的世界,在这里,工作方式与普通HTML和js文件不同。请在各自的主页上阅读这两方面的文档。和。如果您需要入门帮助,Vue主页(学习菜单下)上列出了一些不错的课程
我希望这有帮助
import L from 'leaflet'
export default {
mounted () {
// move your code here
}
}