vue.js 템플릿에 외부 스크립트 포함
저는 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>
로 가는 길이 있다./uploaddropzone.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>
1개의 컴포넌트에만 외부 스크립트를 포함하려면 어떻게 해야 합니까?
다음과 같이 스크립트 로드를 담당하는 메서드를 정의하고 마운트 후크 또는 작성된 후크로 호출할 수 있습니다.
<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>
스크립트 태그는 기본적으로 글로벌합니다.템플릿에 스크립트태그를 포함하는 것은 모듈시스템에서는 할 수 없습니다(적어도 현시점에서는).
npm을 사용하여 노드 모듈로 설치할 수 있습니다.npm install dropzone --save.
그런 다음 구성 요소 코드 안으로 가져옵니다.
import drozone from 'dropzone';
export default {
// Component code...
}
다만, Web 팩코드 분할 기능을 사용하고 있지 않는 한, 번들에는 모든 페이지에 드롭 존이 포함되어 있는 것에 주의해 주세요.Vue Router에서 번들을 분할하는 방법에 대한 공식 튜토리얼은 여기를 참조하십시오.
언급URL : https://stackoverflow.com/questions/45145448/including-external-script-in-vue-js-template
'source' 카테고리의 다른 글
| 왜 구조 자체보다는 구조의 첫 번째 요소의 주소를 사용하는가? (0) | 2022.07.17 |
|---|---|
| Vuex 및 타이프스크립트를 사용하는 올바른 방법은 무엇입니까? (0) | 2022.07.17 |
| Nuxt js 프로젝트의 config stylelint 파일 (0) | 2022.07.17 |
| 'java' 명령어는 Java 프로그램을 컴파일합니까? (0) | 2022.07.17 |
| 오류: Java: 잘못된 대상 릴리스: 11 - IntelliJ IDEA (0) | 2022.07.17 |