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 相关文章推荐
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
May 13 Javascript
js下拉框二级关联菜单效果代码具体实现
Aug 03 Javascript
jsonp原理及使用
Oct 28 Javascript
JavaScript利用正则表达式去除日期中的-
Jun 09 Javascript
SuperSlide标签切换、焦点图多种组合插件
Mar 14 Javascript
JavaScript 数组中最大最小值
Jun 05 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
如何使用Bootstrap创建表单
Mar 29 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
vue+elementui 对话框取消 表单验证重置示例
Oct 29 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
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
javascript ajax 仿百度分页函数
2013/10/29 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
JS常用函数使用指南
2014/11/23 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
python中使用序列的方法
2015/08/03 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Python解析微信dat文件的方法
2020/11/30 Python
python中re模块知识点总结
2021/01/17 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
后勤人员岗位职责
2013/12/17 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
健康状况证明模板
2014/10/23 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书