VueJ가 vue 구성 요소의 외부 Import 메서드에 액세스합니다.
외부 Java 스크립트 파일 something.js가 있습니다.
function myFun(){
document.getElementById("demo").innerHTML="Hello World!";
}
export default myFun;
그리고 이것은 저의 vue 컴포넌트 대시보드입니다.표시하다
<template>
<div>
<button type="button" name="button" @click="">Call External JS</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
created(){
}
}
</script>
두 가지 질문이 있습니다.
- 먼저 작성한 라이프 사이클훅 내에서 이 메서드를 호출하여 자동으로 실행하는 방법을 알려주세요.
- 둘째, "외부 JS 호출" 버튼을 눌러 이 메서드를 호출하는 방법
순수 JS 외부 파일의 도움 없이도 vueJ가 쉽게 div의 내용을 변경할 수 있기 때문입니다.하지만 vue 구성 요소 내에서 외부 JS 파일을 사용하는 방법에 대한 개념을 명확히 하기 위해 이 질문을 합니다.
감사합니다.
보다 나은 솔루션은 mixin을 사용하는 것입니다.
import something from './something.js'
export default {
mixins: [something]
}
이제 내보낸 모든 메서드/계산 방법을 사용할 수 있습니다.something.js
(직접)this
.
이 예에서는, 다음과 같이 되어 있습니다.myFun()
에서 내보낸something.js
에서 호출할 수 있습니다.Dashboard.vue
다음과 같이 합니다.
<template>
<div>
<button type="button" name="button" @click="myFun">Call External JS</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
mixins: [something],
mounted(){
this.myFun()
}
}
</script>
구문이 맞았으면 좋겠는데, 그게 보통 믹스인의 개념이에요.
Import된 콜은
something
원하는 라이프 사이클 방식으로 작동합니다.여기에서는, 다음의 것을 사용하는 것을 추천합니다.mounted
방법.모든 구성 요소의 HTML이 렌더링되면 트리거됩니다.를 추가할 수 있습니다.
something
vue 컴포넌트의 메서드에 따라 함수를 호출한 다음 템플릿에서 함수를 직접 호출합니다.
<template>
<div>
<button type="button" name="button" @click="something">
Call External JS
</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
mounted() {
something()
},
methods: {
something,
},
}
</script>
또 다른 접근방식은 데이터 블록에 메서드를 추가하는 것입니다.
import something from "./something.js" // assuming something is a function
data() {
return {
// some data...
something,
}
}
그런 다음 템플릿에서 다음과 같이 사용합니다.
<template>
<div class="btn btn-primary" @click="something">Do something</div>
</template>
예를 들어 외부 javascript 파일 something.js 입니다.
function myFun(){
document.getElementById("demo").innerHTML="Hello World!";
}
export default myFun;
메서드에서는 오브젝트처럼 해석할 수 있습니다.대시보드의 {}.표시하다
<template>
<div>
<button type="button" name="button" @click="something">Call External JS</button>
<div id="demo"></div>
</div>
</template>
<script>
import something from "./something.js"
export default {
methods: {
something,
}
}
</script>
수동적이거나 컴포넌트(API가 아닌)와 결합되어 있는 메서드는 다음과 같이 기술해야 합니다.methods
.저는 이 관행을 따릅니다.컨셉을 명확히 하기 위한 시나리오가 있습니다.
JS 파일(함수가 포함된 파일) 파일 이름 - apis.js
export function GetApiCall(apiName, data, header) {
return new Promise((resolve, reject) => {
//do something here
});
}
이 기능은 여기서 사용한 적이 있습니다.created
후크. 중요한 건 사용자 정의 방법 중 하나를 사용할 수 있다는 거예요.
vue file(js file에서 해당 함수를 사용할 것) - filename - infoform.표시하다
import { GetApiCall } from '../utils/apisget';
export default{
created(){
// Invoked API to get Data of organization
GetApiCall(URL,{},{
"Content-Type": "application/json",
"Authorization": 'Bearer ' + token
})
.then(responseJson => {
})
.catch(err=>{
this.$toasted.show(err);
// console.log('error==',err);
});
},
methods: {
onClickMethod () {
GetApiCall(URL,{},{});
}
}
}
내가 만든 것은"/helpers/modalHelpermodalHelper.js".
export default function modalHelper() {
function showModalWithoutBackdrop(modalID) {
$('#' + modalID).modal({
backdrop: 'static',
keyboard: false
});
}
function showModal(modalID) {
$('#' + modalID).modal("show");
}
function hideModal(modalID) {
$('#' + modalID).modal("hide");
}
return {
showModalWithoutBackdrop,
showModal,
hideModal,
}
}
사용방법: vue 컴포넌트 스크립트 파트:
<script>
import modalHelper from "@/helpers/modalHelpermodalHelper.js"
const {showModal} = modalHelper();
export default {
methods: {
showModal,
}
}
<script>
이제 템플릿에서 이 방법을 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/49144933/vuejs-accessing-externaly-imported-method-in-vue-component
'source' 카테고리의 다른 글
virtualenv 문제 - 활성화할 수 없음 (0) | 2022.09.08 |
---|---|
N초를 datetime에 추가하는 표준 방법은 무엇입니까?Python에서 시간? (0) | 2022.09.08 |
OSX 10.11(El Capitan)(시스템 무결성 보호)에 스크래피를 설치할 때 "OSError: [Errno 1] 작업이 허용되지 않음" (0) | 2022.09.06 |
파일 권한을 프로그래밍 방식으로 변경하려면 어떻게 해야 합니까? (0) | 2022.09.06 |
이상한 세그먼트화(코어 덤프화) - C 프로그래밍 언어 연습 13 (0) | 2022.09.06 |