Import
export 키워드로 내보진 변수, 함수 등등을 불러올 수 있는 키워드
사용법
import defaultExport from ‘module-name’; |
module-name 내에 export default
로 내보내진 것을 가져온다. 컴포넌트는 이 규칙을 활용하는 경우가 많다
import * as allItems from ‘module-name’; |
module-name 내에서 export
된 모든 것을 모두 가져온다. as 이후 이름은 중복되지 않으면 자유롭게 정할 수있다.
import { loadItem } from ‘module-name’; |
module-name내에서 export 된 것 중에 특정 값
만 가져온다.
import { loadItem as loadSomething } from ‘module-name’; |
module-name내에서 export 된 것 중에 특정 값만 이름을 바꿔서 가져온다.
import defaultFunction, { loadItem } from ‘module-name’; |
export default 된 것과 개별 export 된 것을 한번에 가져올 수도 있다.
import ‘module-name’; |
별도의 모듈 바인딩 없이 불러오기만 한다. 불러오는 것만으로 효과가 있는 스크립트의 경우 사용
된다.
장점
- import를 사용하면
스크립트 의존성
을 훨씬 간편하게 관리할 수 있다. - 각 JS별로 사용되는 모듈을 명시적으로 import해오기 때문에, 사용되거나 사용되지 않는 스크립트를 추적할 수 있다.
- script 태그로 로딩하는 경우 불러오는 순서가 중요하지만, import로 불러오는 경우
순서는 무관
하다. - script src로 불러오는 것과 다르게
전역오염이 안된다.
주의할 점
import를 사용하려면 웹서버가 필요하다. 뭔가 잘안되면 from 이후 모듈이름 맨뒤에 .js를 잘붙였는지 확인해보기!
fecth API
- 비동기 http 요청을 좀 더 쓰기 편하게 해주는 API
- XMLHTTPRequset를 대체한다.
Promise
기 반으로 동작한다.
사용법
1
2
3
4
5
6
7
fecth("https://naver.com")
.then((res) => {
return res.json();
})
.then((todos) => {
console.log(todos);
});
- Response 객체를 얻은 뒤엔 응답을 json으로 바꾸거나 text로 바꾸는 등의 처리를 해줘야된다.
- fecth의 두 번째 인자로 옵션을 줄 수 있다.
- 다른 method도 있지만 blob이란 method는 이미지를 처리하는데 쓸 수 있다.
- fetch는
HTTP error
가 발생하더라도reject되지 않는다
. (ex 404에러가 돌아와도 reject가 아닌 resolve가 된다는 뜻)네트워크 에러
나 요청이완료되지 못한 경우
에만 reject된다. - 서버 요청 중 에러가 생겼을 경우에도 then으로 떨어지므로, response의
status code
나 ok를 체크해주는 것이 필요하다.
res.ok: status가 200~299 사이인 경우 true 가 된 다. |