• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

플러그인 등록과 모듈함수 생성 및 사용의 장단점

23.12.07 11:28 작성 조회수 151

0

안녕하세요,

dayjs 플러그인을 등록해서 $dayjs(Date).format('')....로 사용하는곳이 중복되는것을 보고 모듈로 만들어 사용하면 어떨까하는 생각에 따로 모듈파일을 만들고 함수로 정의해서 사용해봤습니다.

함수로 정의 후 사용시 각 파일마다 import해야하는 번거로움은 있지만 .format하위 구문을 작성하지 않아도 되는 이점이 있었는데요, 플러그인으로 등록, main.js파일에서 app.use()로 사용하는것은 단지 각 파일에 import하지않고 사용하기위함인것인지 궁금합니다.

추가로 플러그인으로 추가해서 사용할때는 함수로 만들어 추가할수 있는 방법이 있는지도 궁금합니다.

이전 강의에서 funcPlugins를 잠깐 언급하셨지만 파라미터가 있는 경우 생각처럼 동작하지 않는 현상이 있습니다..ㅠ

답변 1

답변을 작성해보세요.

0

안녕하세요 🙂

질문1) "플러그인으로 등록 ... 단지 각 파일에 import하지않고 사용하기 위함인것인지 궁금"

더 넓은 의미에서 바라보셔야 될 것 같습니다. import 하지 않는것은 플러그인이 전역 수준의 기능을 추가 할 때 사용하기 때문에

그 안에서 app.component(), app.directive(), app.provide() 와 같은 API를 사용했을 때 그 스펙에 의한 이점이고요.

 

플러그인 이란

플러그인(Plugin)은 일반적으로 Vue에 전역 수준의 기능을 추가할 때 사용하는 기능을 말합니다.

(참고 링크 https://www.gymcoding.co/89791ce7-8af0-4abf-9e8a-ae2a886ddf68)

 

예를 들어 VueRouter나 Pinia도 설치할 때 App.use() (플러그인 설치) 메서드를 사용해서 플러그인을 설치하죠? 그 이유는 Vue에 전역 수준의 기능을 추가하기 위함입니다.

수강생분이 궁금하신점은 특정 기능이 있는데 모듈로 할지 플러그인으로 할지 고민이신거겠죠? 그럴때는 "전역수준의 기능인가" 플러그인의 목적에 맞게 고찰해 보는것을 권장드립니다.

프로그래밍이 어렵게 느껴질 때가 구현 보다는 Best Practice를 찾을 때 인것 같아요. (저도 그렇고요 🥲)

질문2) 이전 강의에서 funcPlugins를 잠깐 언급하셨지만 파라미터가 있는 경우 생각처럼 동작하지 않는 현상이 있습니다..ㅠ

// install() 메서드를 갖고 있는 객체
const objPlugin = {
	install(app, options) {
		
	}
}

// 단순히 설치 함수
function funcPlugin(app, options) {

}

강의해서 언급 했던 그 이상의 이하의 내용이 없어요 🥲

오히려 말씀하신 "생각처럼 동작하지 않는 현상" 이라는 버그를 찾아서 해결해야 할 것 같아요. 왜냐하면 어떤 기술이던 스펙대로 동작하지 않는 경우가 있습니다. 물론 해당 라이브러리(혹은 프레임워크)의 버그가 있을 수 있지만 그럴 확률은 정말로 드물겠죠?

만약 내가 구현하려고 하는 방법이 A가 있고 B가 있는데 A와 B 둘다 "생각대로 동작해야 정상"인데 B는 생각대로 동작하지 않는다면, "A"라는 방법을 선택하면 될 까요? 물론 케이스 마다 차이가 있겠지만 저는 "A"를 사용하더라도 "B"로 왜 안되었는지 무조건 확인하고 갑니다.