在Vue组件中使用第三方JavaScript库

坎纳

我正在使用Webpack和VueJs2。我想在组件中使用第三方JavaScript库,例如:

<script async defer src="https://apis.google.com/js/api.js" ... ></script>

我在这里找到了有关如何对npm软件包执行此操作的文章,但对我来说不起作用,因为该库不能作为npm软件包使用。

我无法在本地下载文件并使用它,因为该库可能会更改并停止工作。因此,每次浏览器加载页面时,都必须从链接中加载它。

我在这里找到了一种可能的解决方案但这基本上是一种破解(script在文档加载后修改dom以添加元素)

我认为对于此问题必须有一个简单的良好实践解决方案,因为我认为这是一个常见的用例。

更新:如果将脚本放在索引文件的head标签中,则会为所有组件加载该脚本。出于性能原因,我希望仅针对特定组件加载它。

坎纳

好的,找到了一个满足所有要求的解决方案。

  • 脚本是从Web下载的,不需要npm软件包
  • 仅在需要时为某些组件加载脚本
  • 没有丑陋的dom操纵

使用v-if指令将脚本添加到index.html中

<script v-if="loadGoogleAPI" async defer src="https://apis.google.com/js/api.js" ... ></script>

在组件文件(.vue)中,如果要加载脚本,请将标志设置为true

<script>
export default {
  ...
  loadGoogleAPI: true,
  data() {
  ...
  }
};
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章