javascript - 提前将Vue组件转换为HTML

标签 javascript vue.js

我需要创建一个 vuejs 组件并将其作为纯 html 传递到库(mapbox)中。 Mapbox 有一个用于我尝试填充的弹出窗口的 setHtml 方法。

https://docs.mapbox.com/mapbox-gl-js/example/popup/

var popup = new mapboxgl.Popup({ closeOnClick: false })
.setLngLat([-96, 37.8])
.setHTML('<h1>Hello World!</h1>')
.addTo(map);

我还没有找到任何方法将特定组件预先渲染到 html 中,然后将其插入到 mapbox 调用中。有点像相反的 v-html。

最佳答案

为你的组件设置ref属性,然后你可以使用this.$refs.ComponentRef.$el.outerHTML获取组件渲染的HTML内容,记住创建时不要这样做.

<template>
  <div class="app">
    <Hello ref="hello" />
  </div>
</template>

<script>
import Hello from './Hello.vue'
export default {
  name: 'App',
  components: {
    Hello,
  },
  created() {
    // wrong, $el is not exists then
    // console.log(this.$refs.hello.$el.outerHTML)
  },
  mounted() {
    console.log(this.$refs.hello.$el.outerHTML)
  },
}
</script>

关于javascript - 提前将Vue组件转换为HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63591425/

相关文章:

javascript - 在extjs 4.2中设置折线系列图表中的线条颜色

javascript - JSON 字符串化格式数组

javascript - 如何使用给定 ID 进行快速重定向?

javascript - 在特定于单击元素的超时内更改类

javascript - 访问导出默认值之外的数据字段 - Vue

javascript - 如何调用innerHTML中的函数?

typescript - Vue/Typescript 如何找到用于样式的正确类型的对象 = { }

javascript - Vue/路由器 : How do I correctly fetch data before rendering page content?

node.js - Webpack 中的 Typescript 定义文件

javascript - Electron .js | ipcRenderer 和 ipcMain 导致白屏/黑屏