[Vue.js] Vue-cli (1)

2019. 5. 31. 01:34· WEB/JavaScript
목차
  1. # 프로젝트 생성
  2. # 개발자 모드로 실행
  3. # 일반 모드로 실행
  4. # vuetify 설치/설정
  5. # 템플릿
  6. # 전역 컴포넌트 선언해서 사용 하는 방법
  7. # Props
반응형

[Vue.js] Vue-cli (1)


Vue-cli

개발환경을 빠르게 셋팅할 수 있도록 도와주는 툴

# 프로젝트 생성

$ vue create 프로젝트명

스크린샷 2019-05-29 오후 10 06 03

# 개발자 모드로 실행

$ npm run serve

# 일반 모드로 실행

$ npm run build

# vuetify 설치/설정

$ vue add vuetify

스크린샷 2019-05-29 오후 10 23 02
  • src/assets : 이미지, css 등 갖는 폴더

# 템플릿

  • <template>안에는 한 개의 태그만 존재 가능하다.

    그래서 대체로 <div>태그를 이용해서 template안을 하나로 묶어준다.
    <template>
    <div>
      <h1>제목</h1>
      <p>...내용...</p>
    </div>
    </template>

# 전역 컴포넌트 선언해서 사용 하는 방법

ex)
1) 전역 컴포넌트로 사용할 vue생성

<!-- src/Header.vue -->
<template>
  <h1>헤더파일</h1>
</template>
<script>
  export default {
  }
</script>

2) 메인 JS(src/main.js 또는 src/index.js)에 컴포넌트 선언

import HeaderComponents from './Header'

// Vue.component('자식에서 사용할 이름', 사용할 컴포넌트명)
Vue.component('Header', HeaderComponets)

3) 아래 방식으로 컴포넌트 추가해서 어디서든 사용 가능하게 된다.

<template>
  <!--<컴포넌트이름><컴포넌트이름> -->
  <Header></Header>
  <Header></Header>
</template>

# Props

부모컴포넌트에서 자식컴포넌트로 데이터 넘김.

  • 부모

    • 데이터명 : 자식 컴포넌트에서 사용할 변수 명
    • 전달 값 : 자식으로 전달 할 값
      <자식컴포넌트명 
      :데이터명="전달값" 
      :데이터명2="전달값"
      ...계속 추가 가능...
      >
      </자식컴포넌트명>
  • 자식

    • props로 값을 받아옴

      <template>
      <h2>{{ 데이터명2 }}</h2>
      </template>
      
      <script>
      export default {
        // 방식 1
        props: ['데이터명', '데이터명2'],
      
        // 방식 2
        props: {
          데이터명: {
            type: 데이터타입(String, Object, Boolean...),
            required: true, // true일 경우 전달된 값이 없을 경우 오류 발생
            default: "기본값"  // 부모로 부터 전달된 값이 없을 경우 표시될 값
          }
        }
      }
      </script>

하지만, 자식에서 직접 props값을 수정할 경우, 다시말해, 자식이 직접 부모로 부터 전달 받은 값을 수정할 경우, 부모 값이 수정되면 자식 값도 수정된다는 오류가 발생한다.

이를 해결할 수 있는 방법은 두 가지 있다.

1) 부모로 부터 넘어온 값을 새로운 객체에 할당해서, 생성된 객체를 사용.

ex) user객체를 생성 한 후 생성된 객체에 부모로 부터 넘어온 값을 할당했다.

스크린샷 2019-05-29 오후 11 30 17



2) 자식 컴포넌트가 변경될 떼 부모 컴포넌트로 신호 전달. $emit사용

  • 자식

    this.$emit('신호이름', 전달값)

<!-- 예제 -->
<script>
export default {
  props: ["name", "address", "phone", "hasDog"],
  data() {
    return {
      user: {}
    };
  },
  created() {
    this.user.name = this.name;
    this.user.address = this.address;
    this.user.phone = this.phone;
    this.user.hasDog = this.hasDog;
  },
  methods: {
    changeUser() {
      this.$emit('child', this.user)  // $emit
    }
  }
};
</script>
  • 부모

    <자식컴포넌트 @신호명="신호가 오면 실행할 함수"></자식컴포넌트>

<!-- 예제 -->
<UserEdit
  :name="name"
  :address="address"
  :phone="phone"
  :hasDog="hasDog"
  @child="parents"
>
</UserEdit>




[소스코드]

반응형
저작자표시 비영리 변경금지 (새창열림)

'WEB > JavaScript' 카테고리의 다른 글

[JavaScript] TreeView 사용하기 (fancytree)  (0) 2019.06.03
[Vue.js] Vue-cli (2)  (0) 2019.06.01
[Vue.js] This dependency was not found: * core-js/modules/web.dom.iterable 에러  (0) 2019.05.29
[JavaScript] Bootstrap-Select 관련  (0) 2019.05.28
[JavaScript] image refresh 오류  (0) 2019.05.09
  1. # 프로젝트 생성
  2. # 개발자 모드로 실행
  3. # 일반 모드로 실행
  4. # vuetify 설치/설정
  5. # 템플릿
  6. # 전역 컴포넌트 선언해서 사용 하는 방법
  7. # Props
'WEB/JavaScript' 카테고리의 다른 글
  • [JavaScript] TreeView 사용하기 (fancytree)
  • [Vue.js] Vue-cli (2)
  • [Vue.js] This dependency was not found: * core-js/modules/web.dom.iterable 에러
  • [JavaScript] Bootstrap-Select 관련
S0PH1A
S0PH1A
반응형
S0PH1A
Web Programmer
S0PH1A
전체
오늘
어제
  • 전체
    • About Me
    • Python
      • Python
      • Django
    • DataBase
      • MySQL
      • MongoDB
    • JAVA
      • JAVA
      • Spring
    • WEB
      • JavaScript
      • HTML
      • CSS
      • Vue.js
      • React
      • Nest.js
      • Node.js
      • Electron
      • PHP
    • Linux
    • Algorithm
    • 기타
    • 생각
    • App
      • ReactNative

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • install
  • django
  • vue
  • vue.js
  • electron
  • Python
  • javascript
  • Error
  • mysql
  • nodejs

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
S0PH1A
[Vue.js] Vue-cli (1)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.