之所以要做这个是因为,在一个组件内部需要引入一个js文件来定位。如果放在index.html,这样每个组件都会有这个js。所以需要在组件内单独引入。 第一种操作 Dom引入js: export default { mounted() { const s = document.createElement('script'); s.type = 'text/javascript'; s.src = '你的需要的js文件地址'; document.body.appendChild(s); }, } 第二种使用 createElement 方法: export default 在Vue.js应用中,有时我们需要在特定的组件内部引入外部JavaScript文件,而不是全局引入。这样做的好处是可以避免不必要的资源加载,提高应用性能。本篇将详细介绍三种在Vue组件内部引入外部js文件的方法。 1. 操作DOM引入JS: 这是最简单直接的方式,通过在`mounted`生命周期钩子中动态创建`<script>`标签并将其插入到DOM中。这种方法的代码如下: ```javascript export default { mounted() { const s = document.createElement('script'); s.type = 'text/javascript'; s.src = '你的需要的js文件地址'; document.body.appendChild(s); }, } ``` 这样,当组件挂载完成后,JS文件会被加载。但要注意,这种方式的缺点是无法监听加载状态,且不适用于服务器端渲染(SSR)。 2. 使用`createElement`方法创建组件: 这种方式创建一个自定义组件`remote-js`,在组件的`render`函数中返回一个`<script>`元素。例如: ```javascript export default { components: { 'remote-js': { render(createElement) { return createElement( 'script', { attrs: { type: 'text/javascript', src: '你的需要的js文件地址', }, }, ); }, }, }, } ``` 然后在组件模板中使用`<remote-js></remote-js>`来引入外部JS。这种方式比第一种更灵活,可以控制何时加载和卸载脚本。 3. 封装一个通用的组件: 可以创建一个名为`importJs.js`的通用组件,它接受一个`src`属性来指定JS文件的URL,并监听加载和错误事件。示例代码如下: ```javascript // importJs.js import Vue from 'vue' Vue.component('remote-script', { render: function (createElement) { var self = this; return createElement( 'script', { attrs: { type: 'text/javascript', src: this.src, }, on: { load: function (event) { self.$emit('load', event); }, error: function (event) { self.$emit('error', event); }, readystatechange: function (event) { if (this.readyState == 'complete') { self.$emit('load', event); } }, }, }, ); }, props: { src: { type: String, required: true, }, }, }); ``` 然后在需要的地方导入并使用这个组件: ```javascript // 引入 import 'common/importJs.js' // 使用 <remote-script src="https://pv.sohu.com/cityjson?ie=utf-8"></remote-script> ``` 这种方式提供了加载状态的反馈,并可以通过事件处理程序进行错误处理,更加健壮和可控。 总结来说,这三种方法都旨在解决Vue组件内部按需引入外部JS文件的问题,各有优劣。操作DOM简单直接,但缺乏控制;`createElement`方法灵活,但需要手动管理;封装组件则更为全面,能处理加载状态和错误。开发者可以根据具体需求选择合适的方法。在实际项目中,还可以考虑结合Vue的异步组件和动态导入(`import()`)等特性,优化加载性能。




















- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 公司设备管理系统的分析与设计-软件工程课程设计报告.doc
- 项目管理中的历史和发展篇.docx
- 企业信息化项目管理中的业务流程优化方法研究和应用.doc
- 初中信息技术中考excel操作题.doc
- 大数据环境下的供电局电力营销信息化建设探析.docx
- 大数据时代的环境行政管理体制改革与重塑.docx
- 对移动互联网思维与数字媒体艺术教育的探讨.docx
- 创新20模式下互联网+高等职业教育智慧校园建设研究.docx
- 《photoshop教程byjessica》10.ppt
- linuxman使用方法和centos安装中文man包.doc
- 嵌入式QT编程.ppt
- 网络招聘与传统招聘方式之比较研究工作计划.doc
- 大数据背景下事业单位成本控制研究.docx
- 华工网络项目管理随堂答案(题).doc
- 全国年月高等教育自学考试(电子商务网站设计原理试题及标准答案).doc
- “案例引导、项目管理驱动”教学法在《-NET程序设计语言》课程中的应用.doc



评论1