hoisting을 사용하면 문서가 준비되기 전에 ES6 모듈이로드됩니다. 콘솔의 예ES6 모듈에서 문서 준비가 완료 될 때까지 기다리십시오.
,
// module.js
console.log('body', document.body);
export let a = 1;
// main.js
import {a} from 'module'
로그 body null
.
DOM 조작을 사용하는 ES6 모듈은 어떻게 필요하며 document ready
이 필요합니까?
$(document).ready(function() {
var a = 1;
});
export {a};
을 사용하려고하지만 바벨은 나에게
Unexpected token
오류를 반환했습니다.
는 또한
$(document).ready(function() {
export let a = 1;
});
을 시도하고 나는
'import' and 'export' may only appear at the top level
오류가 발생했습니다.
업데이트 : a
가 정의되어 있지 않기 때문에
나는
document.addEventListener("DOMContentLoaded",function(){
var a = 1;
}
export {a};
과 같은 문제가 있습니다.
즉 내보낼 변수를 사용할 수 없습니다 (내 업데이트 참조).
업데이트 : 여기
이 @MaciejSikora 코드를 내 시도를 기반으로 : 내가 할 다른 파일에서
function Test() {
document.addEventListener("DOMContentLoaded",()=>{
this.width = $(window).width();
});
};
//example object method
Test.prototype.getElement = function(el) {
return this[el];
};
export { Test };
var test = new Test();
var width = test.getElement('width');
그러나 width
은 정의되지 않습니다.
고마워요! – hhh
로드 된 DOM에서 이벤트를 사용하는 것이 좋습니다. 우리의 스크립트는 HTML의 모든 장소에있을 수 있습니다. –
@MaciejSikora 동의하지만 작동하게 할 수는 없습니다. 내 업데이트를 참조하십시오. – hhh