Vue组件中如何引入外部的js文件
Vue组件中如何引入外部的js文件
·
我现在本地有了js文件或者是一个远程js文件链接,不想使用npm install xxx 的方式来引用外部js文件
- Vue项目的index.html 中使用全局的方式引入
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>logo.png">
<title><%= VUE_APP_TITLE %></title>
<style>#loading-mask{position:fixed;left:0;top:0;height:100%;width:100%;background:#fff;user-select:none;z-index:9999;overflow:hidden}.loading-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%)}.loading-dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:64px;width:64px;height:64px;box-sizing:border-box}.loading-dot i{width:22px;height:22px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.loading-dot i:nth-child(1){top:0;left:0}.loading-dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.loading-dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.loading-dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style>
</head>
<body ref="mainBody" id="mainBody">
<noscript>
<strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app" >
<div id="loading-mask">
<div class="loading-wrapper">
<span class="loading-dot loading-dot-spin"><i></i><i></i><i></i><i></i></span>
</div>
</div>
</div>
<script src="***.js"></script>
<!-- built files will be auto injected -->
</body>
</html>
- 如果是下载到本地的静态文件,可以使用import 的方式导入。
import { xxx } from ‘…/js/xxx.js’
缺点:下载的本地静态文件才可以,远程js文件不可以。
- rander的方法
export default {
components: {
'xxx-js': {
render(createElement) {
return createElement(
'script',
{
attrs: {
type: 'text/javascript',
src: '你的js文件地址',
},
},
);
},
},
},
}
// 使用 <xxx-js></xxx-js> 在页面中调用
4.包装一个插件
importJS.js
// 导入外部js
import Vue from 'vue'
Vue.component('remote-script', {
render: function (createElement) {
var self = this
return createElement('script', {
attrs: {
type: 'text/javascript',
src: this.src
},
on: {
load: function (event) {
self.$emit('load', event)
},
error: function (event) {
self.$emit('error', event)
},
readystatechange: function (event) {
if (this.readyState === 'complete') {
self.$emit('load', event)
}
}
}
})
},
props: {
src: {
type: String,
required: true
}
}
})
使用
//引入
import '@/components/importJD'
//使用
<remote-script src="/store/imou/imouplayer.js"></remote-script>
更多推荐
已为社区贡献7条内容
所有评论(0)