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 相关文章推荐
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
Mar 14 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
Jquery树插件zTree用法入门教程
Feb 17 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
js 上传文件预览的简单实例
Aug 16 Javascript
JavaScript重定向URL参数的两种方法小结
Oct 19 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 Javascript
Vue 3.0双向绑定原理的实现方法
Oct 23 Javascript
jQuery实现手风琴特效
Jan 11 jQuery
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 采集程序原理分析篇
2010/03/05 PHP
php实现的双色球算法示例
2017/06/20 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
python实现从ftp服务器下载文件
2020/03/03 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Django视图、传参和forms验证操作
2020/07/15 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
实习生自我鉴定
2013/12/12 职场文书
经济管理专业自荐信
2013/12/30 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
客户经理岗位职责
2015/01/31 职场文书
水电施工员岗位职责
2015/04/11 职场文书
行政复议答复书
2015/07/01 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
golang中的空slice案例
2021/04/27 Golang