Ash*_*y B 7 javascript vue.js vue-component vuejs2
我是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>
Run Code Online (Sandbox Code Playgroud)
我的App.vue也类似于生成的:
<template>
<div id="app">
<div class="container pt-5">
<router-view></router-view>
</div>
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
我有一个路由到/upload我的路由文件,它映射到需要dropzone.js(外部脚本)的上传组件.我可以将它包含在我的index.html中,类似于如何加载引导程序,但是当只有这个组件需要它时,为每个页面/组件加载它似乎不太理想.
但是,如上所述,我只是将它包含在我的模板文件中:
<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>
Run Code Online (Sandbox Code Playgroud)
如何仅为一个组件包含外部脚本?
脚本标签本质上是全局的。在模板中包含脚本标签并不是您处理模块系统的方式(至少目前如此)。
您可以使用 npm 将其安装为节点模块,npm install dropzone --save.
然后将其导入到组件代码中。
import drozone from 'dropzone';
export default {
// Component code...
}
Run Code Online (Sandbox Code Playgroud)
但是,请注意,捆绑包将在每个页面中包含 dropzone,除非您使用 webpack 代码分割功能。请参阅此处有关如何使用 Vue Router 拆分捆绑包的官方教程。
| 归档时间: |
|
| 查看次数: |
7685 次 |
| 最近记录: |