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 相关文章推荐
总结AJAX相关JS代码片段和浏览器模型
Aug 15 Javascript
Javascript !!的作用
Dec 04 Javascript
jquery tools 系列 scrollable学习
Sep 06 Javascript
js生成随机数之random函数随机示例
Dec 20 Javascript
Jquery获取当前城市的天气信息
Aug 05 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
微信公众号 客服接口的开发实例详解
Sep 28 Javascript
基于javascript实现按圆形排列DIV元素(二)
Dec 02 Javascript
javascript实现下雨效果
Mar 27 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
微信jssdk踩坑之签名错误invalid signature
May 19 Javascript
vant组件中 dialog的确认按钮的回调事件操作
Nov 04 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
使用Apache的rewrite技术
2006/06/22 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php实现的顺序线性表示例
2019/05/04 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
给Python入门者的一些编程建议
2015/06/15 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
白色公司:The White Company
2017/10/11 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
药剂专业自荐书
2014/06/20 职场文书
cf战队收人口号
2014/06/21 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
公务员个人考察材料
2014/12/23 职场文书
工作建议书范文
2019/07/08 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript