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中for in的用法示例解析
Dec 25 Javascript
javascript笛卡尔积算法实现方法
Apr 08 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
前端面试题及答案整理(二)
Aug 26 Javascript
JS简单生成随机数(随机密码)的方法
May 11 Javascript
12个非常有用的JavaScript技巧
May 17 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
Jul 07 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
JavaScript数组去重的几种方法
Apr 07 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
使用Python写一个小游戏
2018/04/02 Python
python实现Windows电脑定时关机
2018/06/20 Python
python flask实现分页的示例代码
2018/08/02 Python
用Django写天气预报查询网站
2018/10/21 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
python在不同条件下的输入与输出
2020/02/13 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
小学语文教学反思
2014/02/10 职场文书
赡养老人协议书
2014/04/21 职场文书
表扬通报怎么写
2015/01/16 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技