vue怎么引用js文件

vue怎么引用js文件
最新回答
詯啲笶♀昻贵

2021-01-15 04:45:21

在 Vue 中引用 JS 文件主要有两种方式,各有优缺点,具体选择取决于项目需求和场景。以下是详细说明:

方法 1:使用 <script> 标签

适用场景:直接在 HTML 或 Vue 组件模板中加载外部脚本(如第三方库、全局工具函数等)。语法示例

<!-- 在 public/index.html 中全局引入 --><script src="
https://example.com/external-lib.js"></script><
!-- 或在 Vue 单文件组件的模板中引入 --><template> <div>...</div></template><script src="./local-script.js"></script>

优点

  • 简单易用:直接通过 src 属性指定文件路径即可。
  • 支持跨域加载:可引入 CDN 或其他域的脚本。
  • 按需加载:可通过条件渲染(如 v-if)控制脚本加载时机。

缺点

  • 阻塞 HTML 解析:浏览器会暂停解析 HTML 直到脚本加载并执行完成。
  • 全局污染:脚本中定义的变量会挂载到 window 对象,可能引发命名冲突。
  • 不适合大型脚本:大文件会延长页面加载时间。

注意事项

  • 若脚本依赖 Vue 实例,需确保在 Vue 初始化完成后执行(如监听 DOMContentLoaded 事件)。
  • 在组件中使用时,建议将 <script> 放在模板末尾,避免影响组件渲染。
方法 2:使用 Vue 插件

适用场景:需要封装可复用的功能(如自定义指令、全局方法、状态管理等)。步骤

  1. 创建插件文件(如 my-plugin.js):

    const MyPlugin = { install(Vue, options) { // 添加全局方法或属性 Vue.prototype.$myMethod = () => console.log('Plugin method called'); // 或注册自定义指令 Vue.directive('focus', { inserted: el => el.focus() }); }};export default MyPlugin;
  2. 在 Vue 项目中引入并使用

    import Vue from 'vue';import MyPlugin from './my-plugin.js';Vue.use(MyPlugin); // 注册插件

优点

  • 可重用性:插件功能封装后可在多个项目中复用。
  • 非阻塞加载:通过模块化导入(如 Webpack/Vite),不影响 HTML 解析。
  • 与 Vue 深度集成:可直接访问 Vue 实例,扩展性强。

缺点

  • 需额外配置:需通过 Vue.use() 显式注册。
  • 仅限 Vue 生态:不适合纯 JavaScript 工具库的引入。

进阶用法:插件可接收配置参数,例如:

Vue.use(MyPlugin, { someOption: true });其他方式补充
  1. 动态导入(异步加载)使用 import() 动态加载脚本,适合按需场景:

    export default { mounted() { import('./heavy-script.js').then(module => { module.doSomething(); }); }};
  2. 在 main.js 中全局引入若脚本需在多个组件中使用,可在入口文件引入:

    import './global-script.js'; // 脚本内容会直接执行
如何选择?
  • 简单脚本/第三方库:用 <script> 标签(如引入 jQuery、Bootstrap)。
  • Vue 相关功能:用插件(如 Vuex、Vue Router 或自定义工具)。
  • 大型脚本优化:考虑动态导入或代码分割(如 Webpack 的 SplitChunks)。

根据项目规模和需求权衡阻塞风险与开发效率即可。