Vue如何引入远程JS文件


Posted in Javascript onApril 20, 2017

问题

最近在使用 Vue 做东西,用到钉钉扫描登录的功能,这里需要引入远程的 js 文件,因为 Vue 的方式跟之前的不太一样,又不想把文件下载到本地应用,找了一下解决的方法,貌似都需要引入第三方的库,最后找到了解决方案,分享之。

思路

一开始的思路是在 Vue 加载完 Dom 之后(mounted),使用 JavaScript 脚本在 body 中插入远程的脚本文件。

后来发现了 Vue 的 createElement 方法,简单的封装一个组件解决问题。

解决方法

第一版代码(直接在操作 Dom )如下:

export default {
 mounted() {
  const s = document.createElement('script');
  s.type = 'text/javascript';
  s.src = 'https://g.alicdn.com/dingding/dinglogin/0.0.2/ddLogin.js';
  document.body.appendChild(s);
 },
}

使用 createElement 方法:

export default {
 components: {
  'dingtalk': {
   render(createElement) {
    return createElement(
     'script',
     {
      attrs: {
       type: 'text/javascript',
       src: 'https://g.alicdn.com/dingding/dinglogin/0.0.2/ddLogin.js',
      },
     },
    );
   },
  },
 },
}

// 使用 <dingtalk></dingtalk> 在页面中调用

终极方案

通过封装一个组件 remote-js 实现:

export default {
 components: {
  'remote-js': {
  render(createElement) {
   return createElement('script', { attrs: { type: 'text/javascript', src: this.src }});
  },
  props: {
   src: { type: String, required: true },
  },
 },
 },
}

使用方法:

<remote-js src="https://g.alicdn.com/dingding/dinglogin/0.0.2/ddLogin.js">
</remote-js>

因为刚开始学习 Vue 有什么问题欢迎大家指出,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js遍历子节点子元素附属性及方法
Aug 19 Javascript
JavaScript删除指定子元素代码实例
Jan 13 Javascript
Highcharts学习之数据列
Aug 03 Javascript
jQuery中Datatables增加跳转到指定页功能
Feb 08 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
Feb 09 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
JointJS JavaScript流程图绘制框架解析
Aug 15 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
Aug 04 Javascript
React中的Context应用场景分析
Jun 11 Javascript
AngularJS改变元素显示状态
Apr 20 #Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 #Javascript
详解Vue2.0之去掉组件click事件的native修饰
Apr 20 #Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 #Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 #Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 #Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 #Javascript
You might like
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
python实现多线程端口扫描
2019/08/31 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
Python定义函数实现累计求和操作
2020/05/03 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
小学生成绩单评语
2014/12/31 职场文书
毕业生个人总结
2015/02/28 职场文书
辅导员学期工作总结
2015/08/14 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL