博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue引入远程JS文件
阅读量:4085 次
发布时间:2019-05-25

本文共 1258 字,大约阅读时间需要 4 分钟。

问题

最近在使用 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', }, }, ); }, }, },}// 使用
在页面中调用

终极方案

通过封装一个组件 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 }, }, }, },}

使用方法:

因为刚开始学习 Vue 有什么问题欢迎大家指出,大家一起讨论讨论。

参考资料

转载地址:http://dqhni.baihongyu.com/

你可能感兴趣的文章
Redux入门学习系列教程
查看>>
webpack4源码分析
查看>>
深度剖析:如何实现一个 Virtual DOM 算法
查看>>
Vue2.5从0开发猫眼
查看>>
VUE缓存:动态keep-alive
查看>>
webpack4介绍与总结
查看>>
Vue项目Webpack优化实践,构建效率提高50%
查看>>
从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!
查看>>
前端本地文件操作与上传
查看>>
数据动态绑定的简单实现——基于ES5对象的getter/setter机制
查看>>
vue源码系列文章good
查看>>
前端跨域解决方案
查看>>
Web前端面试——HTTP部分
查看>>
HTTP必知必会——常见面试题总结
查看>>
你不知道的Virtual DOM
查看>>
VUE面试题总结
查看>>
写好JavaScript条件语句的5条守则
查看>>
原生JS中DOM节点相关API合集
查看>>
新手快速上手webpack4打包工具的使用
查看>>
发布 react 组件到 npm
查看>>