Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vue.js 컴포넌트와 플러그인 관하여 궁금합니다. #107

Open
hskim1226 opened this issue Feb 23, 2018 · 4 comments
Open

vue.js 컴포넌트와 플러그인 관하여 궁금합니다. #107

hskim1226 opened this issue Feb 23, 2018 · 4 comments

Comments

@hskim1226
Copy link

hskim1226 commented Feb 23, 2018

  • cdn으로 외부 코드를 사용 하거나 vue.use 이런식으로 사용하는것은 , 플러그인 인건가요 ?
  • 그렇다면 내부에서 사용하는것은 컴포넌트 인가요 ?

만약 컴포넌트와 플러그인 이 다른거라면

  • 어떤경우에 컴포넌트를 사용하고
  • 어떤경우에 플러그인으로 사용하는건가요 ?

컴포넌트와 플러그인의 정확한 차이점이 무엇일까요 ..?
사용측면에서 , 어찌 해야할지 잘 모르겠습니다. 답변 주실수 있을까요 ?

@ChangJoo-Park
Copy link
Member

확인했습니다 조금 답변하는데 시간이 걸릴거같은데 괜찮으신가요?

슬랙에 오시면 어느분이든 답변 주실 수 있을 거에요 슬랙에서 질문하시면 더 빠르게 답변을 받으실 것 같아요

@ChangJoo-Park
Copy link
Member

@hskim1226 님,
Vue.use는 플러그인을 추가할때 사용하는데요, 플러그인이 컴포넌트일 수도 있고 아닐수도 있습니다, 믹스인, 메소드 등만 제공하는 플러그인도 있거든요 플러그인이 컴포넌트보다 더 상위레벨이라고 보시면 됩니다

Vue를 처음 사용하고 계신다면 우선은 컴포넌트가 어떤 것인지 먼저 확인해보시면 어떨까요?
컴포넌트 사용법에 익숙해지시면 플러그인이 필요하겠구나 하는 시기가 올 거라 생각해요

@hskim1226
Copy link
Author

hskim1226 commented Feb 26, 2018

답변 감사합니다.

  1. 플러그인이 , 더 상위레벨이라고 말씀하셨는데요 .상위레벨이라는것이 , 확장의 개념인가요 ? 상속의 개념인가요 ?

  2. 현재 컴포넌트를 , html(화면구성)이 포함된 , 기능 단위로 만들어서 사용하고 있었는데요 .
    내가 만든 기능 (컴포넌트)를 다른 프로젝트에서 사용할수 있게 하는것이 , 플러그인 인가요 ?

  3. 현재 ,어떤 함수를 여러 vue인스턴스에서 사용하고 싶어서 .js파일에 전역함수를 선언하고 , 각각의 vue인스턴스에서 아래와 같은 방식으로 다시 불러서 사용하고 있었습니다.

function 전역(type){
return "전역값"+type;
}

vue1.js

 getCommcode: function (type) {
            return 전역(type)
 }

vue2.js

 getCommcode: function (type) {
            return 전역(type)
 }

html에서 전역함수에 직접 접근이 되지 않아서 ,위와 같이 간접적으로 {{getCommcode(type)}} 으로 선언해서 사용하였습니다.
전역 함수를 사용하고 싶은경우& 직접 접근하고 싶은경우 , 권장하는 다른 방법이 있을까요 ?

@jicjjang
Copy link
Member

  1. 확장과 상속은 근본적인 개념이 같아보여서 확답은 못드리겠지만, Vue.use에 있는 말그대로 사용 하기위해 받는 것입니다. 플러그인이란 단어의 의미 자체가 extends, implements를 위한게 아니라 만들어진 것을 사용한다는거죠

  2. 하나의 컴포넌트만 외부로 내보내는 것이 아니라 하나의 기능(모듈)을 완성하고, 밖으로 내보내어 사용하는 것이 plugin 이라고 생각하시면 됩니다.(물론 컴포넌트들을 최종으로 모아놓은것도 컴포넌트긴 하지만... 이를 말씀하시는 건 아닌 것 같아서요^^;) 예를 들어 캘린더를 플러그인으로 만든다던지, 페이지네이션 부분을 모듈로 만든다던지... 이런거죠

  3. 이건 LifeCycle 부분을 조금 더 알아보셔야 할 것 같습니다. 전역으로 선언을 하신 js파일이 불려지는 로딩시간 이전에 vue파일이 로드된다면 에러가 나오겠죠?

개인적인 생각으로 전역으로의 권장(가장 쉽고 빠르게 가능...?)은 vuex가 아닐까 합니다. vuex 말고도 해결책들은 더 있을겁니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants