기업 전산실에서 Vue를 이용해서 프로젝트를 진행하면서 몇 가지 체득한 노하우가 있어서 몇 자 적어봅니다.

컴포넌트 개발은 일반적인 페이지 개발과는 컨셉부터 다릅니다.
이 점을 말로는 받아들여도 구현하면서 무엇이 다른지 깨닫는 건 별개의 문제였습니다.

Vue 컴포넌트를 개발할 때는 함수를 만든다는 심정으로 해야 합니다.

Vue 컴포넌트에 props(properties의 준말로 보입니다.)는 함수로 치면 parameter에 준합니다.
즉, 컴포넌트가 주어진 상황에 맞추어 대응하길 원한다면 props를 적극적으로 사용하세요.
props가 없는 컴포넌트는 가변성이 없는 녀석이라는 선언 같은 겁니다. 

함수로 생각해보면 sayHello(name);과 sayHello(); 의 차이 같은 겁니다.
함수에서 파라미터의 존재 여부로 외부의 영향을 받는지 직관적으로 알 수 있습니다.
파라미터를 갖고만 작업을 하는 함수라면 변경이 쉽고 어떤 것에 영향을 받는지 알기 쉽습니다.
컴포넌트 상에서 props의 존재유무가 그러한 역할을 합니다. 
props만 봐도 Upload컴포넌트는 fileId를 부모에게서 받아온다는 사실을 알 수 있습니.다
하지만 함수가 파라미터 안 받고도 내부적으로 이상한 짓을 할 수 있듯이 
props를 안 써도 상위 컴포넌트나 state 영역을 이용해
억지로 가변성을 부여할 수 있으나 하지 마세요.
그런 컴포넌트는 재사용을 못합니다..

이렇게 Vue개발 원칙 하나가 나왔습니다. 
1. 컴포넌트를 개발 할 때 외부에서 받아오는 사항은 props로 관리해라.