gpt4 book ai didi

javascript - 在 vue.js 模板中包含外部脚本

转载 作者:数据小太阳 更新时间:2023-10-29 05:28:37 24 4
gpt4 key购买 nike

我是 Vue.js 和 web-pack 的新手,所以我决定使用 vue-cli (webpack) 来构建初始应用程序。我试图在模板中包含一个外部脚本(例如 <script src="..." ),这在全局范围内(对于每个页面/组件)都不需要,但是 Vue 警告说这是不允许的。

我的 index.html 文件与最初生成的文件类似:

<html lang="en">

<head>
<title>App</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">

</head>

<body>
<div id="app"></div>

<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>

</html>

我的App.vue也和生成的类似:

<template>
<div id="app">

<div class="container pt-5">
<router-view></router-view>
</div>

</div>
</template>

我有一条路线到/upload在我的路由文件中,它映射到需要 dropzone.js(外部脚本)的上传组件。我可以将它包含在我的 index.html 中,类似于加载 Bootstrap 的方式,但是当只有这个组件需要它时,为每个页面/组件加载它似乎不太理想。

但是,如上所述,我无法将它直接包含在我的模板文件中:

<template>
<div>
<h2>Upload Images</h2>
<form action="/file-upload" class="dropzone">
<div class="fallback">
<input name="file" type="file" multiple />
<input type="submit" value="upload" />
</div>
</form>
</div>

<script src="https://example.com/path/to/dropzone"></script>
</template>

<script>
export default {
data() {
return {}
}
}
</script>

<style>
</style>

如何只包含一个组件的外部脚本?

最佳答案

您可以定义一个负责脚本加载的方法,并在挂载或创建的 Hook 中调用它,如下所示:

<script>
export default {
data() {
return {}
},
methods: {
loadJs(url, callback) {
jQuery.ajax({
url: url,
dataType: 'script',
success: callback,
async: true
});
}
},
mounted() {
this.loadJs('url_to_someScript.js', function() {
//Stuff to do after someScript has loaded
});
}
}
</script>

关于javascript - 在 vue.js 模板中包含外部脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com