如何将脚本添加到 Vue 组件?

Posted

技术标签:

【中文标题】如何将脚本添加到 Vue 组件?【英文标题】:How to add script to Vue component? 【发布时间】:2021-09-04 12:39:33 【问题描述】:

我有 html 模板,其中包含 src 到 js 脚本。 如何将它们添加到 vue 组件中?

<script type='text/javascript' src='js/library/jquery.min.js'></script>
        <!-- Main Js Plugin -->
<script type='text/javascript' src='js/main.min.js'></script>
        <!-- Theme main js -->
<script type='text/javascript' src='./src/assets/js/custom.theme.js'></script

【问题讨论】:

你可以参考这个。 ***.com/questions/37928998/… 【参考方案1】:

对于 Vue 3:如果脚本将在组件挂载时调用,请在 setup() 函数中添加脚本,这与 Vue 2 的 created 钩子相同。

<script lang="ts">
import  defineComponent  from 'vue';

export default defineComponent(
  name: 'ExampleComponent',
  components: ,
  props: ,
  setup() 
    const googleSignInScript = document.createElement('script');
      googleSignInScript.setAttribute(
        'src',
        'https://accounts.google.com/gsi/client'
      );
      googleSignInScript.setAttribute('async', 'true');
      googleSignInScript.setAttribute('defer', 'true');
      document.head.appendChild(googleSignInScript);

    return ;
  ,
);
</script>

如果脚本将在以后使用,您可以将其添加到 onMounted 钩子中

<script lang="ts">
import  defineComponent, onMounted  from 'vue';

export default defineComponent(
  name: 'ExampleComponent',
  components: ,
  props: ,
  setup() 
    onMounted(() => 
      const googleSignInScript = document.createElement('script');
      googleSignInScript.setAttribute(
        'src',
        'https://accounts.google.com/gsi/client'
      );
      googleSignInScript.setAttribute('async', 'true');
      googleSignInScript.setAttribute('defer', 'true');
      document.head.appendChild(googleSignInScript);
    )
    return ;
  ,
);
</script>

对于 Vue 2:在 createdmounted 挂钩中添加适合您的应用程序的脚本。

【讨论】:

以上是关于如何将脚本添加到 Vue 组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将外部 JS 脚本添加到 VueJS 组件?

我如何将数据从控制器传递到组件 vue.js

如何将某个 HTML 中的 Vue 组件添加到另一个 Vue 组件?

如何将按下按钮时的数据添加到 Vue 3 的根目录或组件?

如何在 Vue 组件的外部脚本文件上运行 es-lint 规则

使用 bootstrap-vue:如何将类添加到 b 分页组件中的页面按钮