Vue.js 3 在运行时挂载组件实例

标签 vue.js leaflet vue-component vuejs3

我正在尝试 vue-leaflet/vue-leaflet 并尝试创建 <l-polyline> 的许多实例里面<l-map>成分。但我不知道如何实现这一点。

静态版本( map 附带绘制的折线):


<template>
  <l-map ref="map" v-model:zoom="zoom" :center="[47.41322, -1.219482]">
    <l-polyline
        :lat-lngs="[
        [47.334852, -1.509485],
        [47.342596, -1.328731],
        [47.241487, -1.190568],
        [47.234787, -1.358337],
      ]"
        color="green"
    />
  </l-map>
</template>

动态尝试(准备一个函数以编程方式添加折线,但不起作用):

<template>
  <l-map ref="map" v-model:zoom="zoom" :center="[47.41322, -1.219482]">
  </l-map>
</template>

<script lang="ts">
function someAction(){
let poly= createApp(LPolyline,{
  latLngs:[[47.334852, -1.509485],
    [47.342596, -1.328731],
    [47.241487, -1.190568],
    [47.234787, -1.358337]]
});
poly.mount(this);

}

</script>

为了澄清,我需要一个函数来插入/附加 LPolyline组件进入LMap运行时期间的组件,不应在 LMap 内声明它如果可能的话,首先。

我刚刚开始使用 Vue.js,所以如果我犯了一个明显的错误,我深表歉意。感谢您的理解。

最佳答案

只需添加您想要使用的组件,然后像任何其他 Vue 组件一样向它们提供数据。例如,您可以使用 v-for 从数组加载折线:

    <l-map :zoom="zoom" :center="center">
      <l-polyline
        v-for="line in lines"
        :key="line.id"
        :lat-lngs="line.latLongs"
        :color="line.color"
      />
    </l-map>

看看 sandbox

关于Vue.js 3 在运行时挂载组件实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76086649/

相关文章:

node.js - 当前端和后端在虚拟 docker 网络中时,如何使用 axios 寻址后端主机

vue.js - 用wowjs和vue触发一个新的动画事件

javascript - 在标记事件后使用 jquery

maps - 传单 : Dynamically changing map feature colors

vue.js - VueJS v-model 与 v-for

javascript - vue-youtube-embed 中未定义模板或渲染函数

javascript - 如何将 npm 包中的 JS 文件包含到 Nuxt.js 中的单独页面

leaflet - Leaflet中标记或点的大型数据集

javascript - Vue 不会为特定的 API 请求呈现数据

javascript - Vue.js 如何公开组件数据属性以供第三方脚本使用?