참고 : Vue.js 입문책을 읽고 학습한 내용을 블로그에 정리한 글이므로 내용상 오류가 있을 수 있습니다. 
        오류가 있다면 댓글 남겨주시면 감사하겠습니다.

라우팅(Routing)

  • 웹 페이지 간의 이동 방법
  • 싱글 페이지 애플리케이션(SPA)에서 주로 사용
  • 화면이 깜빡이지 않고 매끄럽게 전환할 수 있고 더 빠르게 화면을 조작 가능
  • Vue, Angular, react 모두 라우팅을 이용하여 화면을 전환

1. Vue 라우터

뷰에서 라우팅 기능을 구현할 수 있도록 지원하는 공식 라이브러리

 

    <!-- html -->
    
    페이지 이동 태그 : 링크를 클릭하면 지정한 URL값으로 이동
    <router-link to="/URL 값"></router-link>

    페이지 표시 태그 : 변경된 URL에 따라 해당 컴포넌트를 화면에 출력해주는 영역
    <router-view></router-view>
      // javascript
      
      1. routes 변수에 각 URL 값에 맞게 컴포넌트 지정하기
      var routes = [
        { path:'/URL 값1', component:컴포넌트1},
        { path:'/URL 값2', component:컴포넌트2}
      ];

      2. router 변수에 routes변수 삽입해 정의하기
      var router = new VueRouter({
        routes
      });

      3. 뷰 인스턴스에 router 변수를 삽입해 생성하고 $mount를 사용해 화면(html)에 부착하기
      var app = new Vue({
        router
      }).$mount('#app')

 

(예제)

1. 컴포넌트 생성

2. (routes 변수) : 각 URL에 맞는 컴포넌트 지정

3. (router 변수) : 뷰 라우터 생성(routes내용 포함)

4. (Vue 인스턴스) : Vue 인스턴스 생성(router내용 포함)하고 $mount를 이용해 (html)에 인스턴스 부착

5. (router-link 태그) : 링크 태그에 (2번)에서 만든 URL값 지정

6. (router-view) : URL값에 맞는 컴포넌트 화면에 표시

 

(출력)

1. 버튼 클릭 전

2. 안녕 클릭 후

3. 잘가 클릭 후


2. 네스티드 라우터(Nested Router)

  • 라우터로 페이지를 이동할 때 최소 2개 이상의 컴포넌트를 화면에 출력 가능
  • 상위 컴포넌트에 하위 컴포넌트를 포함하는 구조
    <!-- html -->
    
    <div id="app">
      <router-view></router-view> <!--상위 컴포넌트 출력 영역 -->
    </div>
      // 상위 컴포넌트
      
      var 상위 컴포넌트 = {
        template:`
        <div>
          상위 컴포넌트 내용
          <router-view></router-view> // 하위 컴포넌트 출력 영역
        </div>
        `
      }
      // 하위 컴포넌트
      
      var 하위 컴포넌트1 = { template:'하위 컴포넌트1 내용'}
      var 하위 컴포넌트2 = { template:'하위 컴포넌트2 내용'}
      // 네스티드 라우팅
      
      var routes = [
        {
          path:'/상위 컴포넌트 URL값',
          component:상위 컴포넌트,
          children :[
            {
              path:'/하위 컴포넌트1 URL값',
              component:하위 컴포넌트1
            },
            {
              path:'/하위 컴포넌트2 URL값',
              component:하위 컴포넌트2
            }
          ]
        }
      ]

예제

    <!-- (HTML) -->
    
    (6)
    <div id="test">
      <router-link to="/user">안녕하세요</router-link>
      <router-view></router-view>
    </div>
    // (javascript)
      
      (1)
      var user = {
        template:`
        <div>
          user 아이디 비밀번호 찾기
          <p>
            <router-link to="/user/ID">ID 찾기</router-link>
            <router-link to="/user/Pass">Password 찾기</router-link>
          </p>
          <router-view></router-view>
        </div>
        `
      }
      
      (2)
      var ID = { template:'<p>Vue</p>'}
      var Pass = { template:'<p>123</p>'}
	  
      (3)
      var routes = [
        {
          path:'/user',
          component:user,
          children:[
            {
              path:'ID',
              component:ID
            },
            {
              path:'Pass',
              component:Pass
            }
          ]
        }
      ]
	  
      (4)
      var router = new VueRouter({
        routes
      })
	  
      (5)
      var test = new Vue({
        router
      }).$mount('#test')

1. 상위 컴포넌트를 생성할 때 하위 컴포넌트 출력 영역을 라우터로 지정합니다.

2. 하위 컴포넌트를 생성합니다.

3. 네스티드 라우팅에 상위 컴포넌트 URL값과 컴포넌트, 하위 컴포넌트 URL값과 컴포넌트를 지정합니다.

4. 뷰 라우터를 생성합니다

5. 인스턴스에 라우터 정보를 포함해서 생성합니다.

6. HTML에 상위 컴포넌트 출력 영역을 라우터로 지정합니다.

 

출력 

1. 상위 컴포넌트 내용 출력 화면 

2. ID 찾기 버튼을 눌렀을때 하위 컴포넌트 내용 출력 화면(상위 컴포넌트 포함)

3. Password찾기 버튼을 눌렀을때 하위 컴포넌트 내용 출력 화면(상위 컴포넌트 포함)


3. 네임드 뷰(Named View)

  • 특정 페이지로 이동할 때 여러 개의 컴포넌트를 동시에 보여주는 라우팅 방식
  • 네스티드 라우터와 다르게 같은 레벨에서 여러 개의 컴포넌트를 한 번에 화면에 보여줌
    <!-- HTML -->
    
    <!-- name속성을 지정하지 않으면 default 컴포넌트에 접근합니다. -->
    
    <div id="app">
      <router-view></router-view>               <!-- 컴포넌트1 내용 출력 -->
      <router-view name="name2"></router-view>  <!-- 컴포넌트2 내용 출력 -->
      <router-view name="name3"></router-view>  <!-- 컴포넌트3 내용 출력 -->
    </div>
      // (javascript) - 같은 레벨의 컴포넌트

      var 컴포넌트1 = { template : '컴포넌트1 내용'}
      var 컴포넌트2 = { template : '컴포넌트2 내용'}
      var 컴포넌트3 = { template : '컴포넌트3 내용'}
      // (javascript) - 네임드 뷰

      // html의 네임드 속성과 Vue의 컴포넌트를 연결 
      
      var router = new VueRouter({
        routes:[
          path:'/',
          component:{
            default:컴포넌트1,
            name2:컴포넌트2,
            name3:컴포넌트3
          }
        ]
      });

'Vue' 카테고리의 다른 글

[Vue] 바인딩 v-bind:(style, class)  (0) 2020.04.10
[Vue] HTTP 통신  (0) 2020.02.13
[Vue] 컴포넌트  (0) 2020.01.30
[Vue] 인스턴스  (0) 2020.01.29
[Vue] 개발 환경 설정(Window)  (0) 2020.01.27

참고 : Vue.js 입문책을 읽고 학습한 내용을 블로그에 정리한 글이므로 내용상 오류가 있을 수 있습니다. 
        오류가 있다면 댓글 남겨주시면 감사하겠습니다.

컴포넌트란???

  • 레고 블럭과 같이 재사용이 가능한 최소 단위

  • 화면 전체를 각각 역할에 맞게 영역별로 잘개 쪼개어서 사용됩니다

1. 컴포넌트 등록

지역(Local)컴포넌트 등록

new Vue({
  components : {
    '컴포넌트 이름' : 컴포넌트 내용
  }
});
  • 특정 인스턴스에서 유효한 범위에서만 사용 가능
  • 인스턴스에 components 속성을 추가하고 등록할 컴포넌트 이름과 내용을 정의합니다

 

전역(Global)컴포넌트 등록

Vue.component('컴포넌트 이름', {
  // 컴포넌트 내용
})
  • 모든 범위의 여러 인스턴스에서 사용 가능
  • Vue 생성자에서 .component()를 호출하여 등록할 컴포넌트 이름과 내용을 정의합니다.

지역 컴포넌트와 전역 컴포넌트 유효범위

    <div id="test1">
      <h4>test1 인스턴스 영역</h4>
      <global-component></global-component>
      <local-component></local-component>
    </div>

    <hr>

    <div id="test2">
      <h4>test2 인스턴스 영역</h4>
      <global-component></global-component>
      <local-component></local-component>
    </div>
    <script>
      Vue.component('global-component', {
        template : '<div>전역 컴포넌트</div>'
      });

      new Vue({
        el : '#test1',
        components : {
          'local-component' : {
            template : '<div>지역 컴포넌트</div>'
          }
        }
      })

      new Vue({
        el : '#test2'
      });
    </script>

HTML에서 첫 번째와 두 번째div태그에 모두 전역 컴포넌트와 지역 컴포넌트를 등록했지만

Script에서 첫 번째 인스턴스 영역에만 지역 컴포넌트를 등록했기 때문에

화면에서 첫 번째 영역에는 전역 컴포넌트, 지역 컴포넌트 내용이 출력 되지만

두 번째 영역에서는 전역 컴포넌트만 출력됩니다.

  • 전역 컴포넌트는 한 번 등록하면 어느 인스턴스 영역에서든 사용할 수 있습니다.
  • 지역 컴포넌트는 등록한 인스턴스 영역에서만 사용할 수 있습니다.

2. 컴포넌트 통신

Vue에서 컴포넌트들 끼리는 각각 고유한 유효범위를 가지고 있기 때문에  아무렇게나 다른 컴포넌트의 값을 참조할 수가 없습니다. 그렇기 때문에 컴포넌트들 끼리 통신하기 위해서는 뷰 프레임워크에서 정의한 컴포넌트 데이터 전달 방법을 사용해야 합니다.

 

2-1 상위 컴포넌트에서 하위 컴포넌트로 데이터 전달

  • props : 상위 컴포넌트에서 하위 컴포넌트로 데이터 전달할 때 사용하는 속성

(html)

    <div id = "test">
      <하위 컴포넌트 v-bind : props속성 이름 = "상위 컴포넌트 data속성"></하위 컴포넌트>
    </div>

(하위 컴포넌트)

      Vue.component('하위 컴포넌트', {
        props : ['props속성 이름'],
        template : '<b>{{props속성 이름}}</b>'
      });

(상위 컴포넌트)

      new Vue({
        el : '#test',
        data : {
          상위 컴포넌트 data속성 : data 내용
        }
      })

1. 하위 컴포넌트에 props속성을 정의합니다.

2. 상위 컴포넌트에 data속성과 data내용을 정의합니다

3. html에 하위 컴포넌트 태그를 추가합니다 

4. 하위 컴포넌트 태그에서 v-bind속성을 이용해 상위 컴포넌트의 data 내용을 하위 컴포넌트 props속성에 전달합니다.

5. 상위 컴포넌트에서 전달받은 data 내용을 하위 컴포넌트의 template을 통해 화면에 출력합니다.

 

예제

  <body>
    <div id = "test">
      <child-component v-bind:propsdata = "text"></child-component>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <script>
      Vue.component('child-component', {
        props : ['propsdata'],
        template : '<b>{{propsdata}}</b>'
      });

      new Vue({
        el:'#test',
        data:{
          text:'parent-component -> child-component'
        }
      })
    </script>
  </body>

출력

2-2 하위 컴포넌트에서 상위 컴포넌트로 이벤트 전달

  • $emit() : 이벤트 발생
  • v-on: 이벤트 수신

(html)

    <div id = "test">
      <child-component v-on:child-hi = "parent"></child-component>
    </div>

(하위 컴포넌트)

      Vue.component('child-component', {
        template:'<button v-on:click = "child">check</button>',
        methods:{
          child: function() {
            this.$emit('child-hi');
          }
        }
      });

(상위 컴포넌트)

      new Vue({
        el:'#test',
        methods: {
          parent:function() {
            console.log("child-hi -> parent")
          }
        }
      })

1. (하위 컴포넌트) check[버튼 클릭]

2. (하위 컴포넌트) v-on:click[이벤트 수신] = "child"[메서드 실행]

3. ("child"메소드 안) this.$emit('child-hi)[이벤트 발생]

4. (html) v-on:child-hi[이벤트 수신] = "parent"[메서드 실행]

5. (상위 컴포넌트) console.log("child-hi -> parent")[화면에 출력]

 

예제

 

출력

 

'Vue' 카테고리의 다른 글

[Vue] HTTP 통신  (0) 2020.02.13
[Vue] 라우터(기초)  (0) 2020.01.31
[Vue] 인스턴스  (0) 2020.01.29
[Vue] 개발 환경 설정(Window)  (0) 2020.01.27
Vue란??  (0) 2020.01.27
참고 : Vue.js 입문책을 읽고 학습한 내용을 블로그에 정리한 글이므로 내용상 오류가 있을 수 있습니다. 
        오류가 있다면 댓글 남겨주시면 감사하겠습니다.

Vue 인스턴스

  • Vue로 화면을 개발하기 위해 필수적으로 생성해야 하는 기본 단위
  • 데이터 바인딩, 컴포넌트, 템플릿 렌더링 등 여러가지를 동작을 수행

Vue 인스턴스 형식

new Vue({

  ...

});

new Vue()로 인스턴스를 생성할 때 Vue를 생성자라고 합니다.

생성자를 사용하는 이유는 미리 생성자에 필요한 기능들을 정의 해서

사용자가 ... 부분에 인스턴스 속성들을 사용하여 화면을 개발할 수 있게합니다.

Vue 인스턴스 속성

el el속성 안에 있는 값과 html 또는 css의 아이디를 연결하는 역할
data data의 값을 html부분의 {{ }}으로 접근하여 렌더링합니다
template HTML, CSS 등의 속성과 뷰 인스턴스에서 정의한 데이터 및 로직들을 브라우저에서 볼 수 있는 형태의 HTML로 변환해 주는 속성
methods 화면 동작과 관련된 로직을 정의하는 속성  ex) 마우스 클릭 이벤트
created 뷰 인스턴스가 생성되고 실행할 로직을 정의할 수 있는 속성

Vue 인스턴스 속성 적용 과정

1. 뷰 라이브러리 파일 로딩

2. 인스턴스 객체 생성(속성 포함)

3. div태그의 id에 인스턴스 el 속성을 붙입니다.

4. 인스턴스 data속성의 text값 'Hi vue'가 div태그안의 {{text}}로 치환됩니다.

5. 치환된 내용{{text}}값을 화면에서 갱신합니다.

뷰 인스턴스 라이프 사이클

라이프 사이클(life cycle) : 인스턴스의 상태에 맞게 호출할 수 있는 속성

라이프 사이클 4단계

인스턴스 생성 -> 인스턴스를 화면에 부착 -> 부착된 인스턴스의 내용 갱신 -> 인스턴스 소멸

(부착 -> 갱신 구간은 데이터가 변경된 경우에만 실행됩니다.)

 

라이프 사이클 세부 내용

(인스턴스 생성)

1. 이벤트 및 라이프 사이클 초기화

2. beforeCreate : data 속성과 methods속성이 아직 인스턴스에 정의 되지 않아서 화면 요소에 접근 불가능한 단계

3. 화면에 반응성 주입

4. created

  • data속성과 methods속성이 정의되어서 정의된 값에 접근하여 로직을 실행할 수 있습니다
  • 인스턴스가 화면에 부착되기 전이기 때문에 template속성에 정의된 돔 요소로 접근 불가능합니다.
  • 컴포넌트가 생성되고 나서 실행되는 단계이기 때문에 서버에 데이터를 요청하여 받아오는 로직을 수행합니다

5. el, template속성 확인

6. template 속성 내용을 render()로 변환

7. beforeMount : 5,6 내용을 화면에 부착하기 전이라서 render()함수가 호출되기 직전의 로직을 추가하면 좋습니다. 

8. $el 생성 후 el속성 값을 대입

 

(인스턴스를 화면에 부착)

9. mounted

  • el 속성에서 지정한 화면 요소에 인스턴스가 부착된 이후에 호출되는 단계
  • template속성의 내용을 화면 요소에 접근할 수 있어서 화면 요소를 제어하는 로직을 수행하기 좋은 단계
  • 화면에 인스턴스가 부착되자마자 호출되기 때문에 하위 컴포넌트나 외부 라이브러리에 의해 추가된 화면 요소들이 최종 html코드로 변환되는 시점과 다를 수 있습니다.

(데이터가 변경되는 경우에만)

10. 인스턴스의 데이터 변경

11. beforeUpdate

  • 관찰하고 있는 데이터가 바뀌면 가상 돔으로 화면을 다시 그리기 전에 호출되는 단계
  • 변경 예정인 새 데이터에 접근하여 관련된 로직을 미리 넣을 수 있습니다.
  • 값을 변경하는 로직을 넣어도 화면은 갱신되지 않습니다.

12. 화면 재 렌더링 및 데이터 갱신

13. updated

  • 데이터가 변경된 후 가상 돔으로 다시 화면을 갱신하면 실행되는 단계
  • 데이터 변경으로 인한 화면 요소 변경까지 완료된 시점
  • 데이터 변경 후 화면 요소 제어와 관련된 로직을 추가하기 좋은 단계

(인스턴스 내용 갱신)

14. 인스턴스 접근 가능

15. beforeDestroy : 인스턴스 접근 가능하여 데이터를 삭제하기 좋은 단계

16. 컴포넌트, 인스턴스 디렉티브 등 모두 해제

17. destroyed : 뷰 인스턴스에 정의한 모든 속성이 제거되고 하위에 선언한 인스턴스들도 파괴

 

(인스턴스 소멸)

 

 

 

 

 

'Vue' 카테고리의 다른 글

[Vue] HTTP 통신  (0) 2020.02.13
[Vue] 라우터(기초)  (0) 2020.01.31
[Vue] 컴포넌트  (0) 2020.01.30
[Vue] 개발 환경 설정(Window)  (0) 2020.01.27
Vue란??  (0) 2020.01.27
참고 : Vue.js 입문책을 읽고 학습한 내용을 블로그에 정리한 글이므로 내용상 오류가 있을 수 있습니다. 
        오류가 있다면 댓글 남겨주시면 감사하겠습니다.

준비물

1. 크롬 브라우저

2. 아톰(Atom) 에디터

3. Node.js

4. 뷰 개발자 도구(Vue.js devtools, 크롬 확장 플러그인)

 

2. 아톰 에디터 설치

1) 크롬 브라우저에서 atom을 검색합니다.

 

2) 다운로드를 클릭합니다.

3) 알집을 풀고 설치를 진행합니다.

 

2-1 아톰 테마 설정하기

1) 아톰 에디터를 실행하고 File -> Settings을 클릭합니다

 

2) Settings의 가장 아래쪽에 있는 Install탭을 클릭하면 테마를 설치 할 수 있는 화면이 나옵니다.

 

3) Install 화면에서 검색창 오른쪽에 있는 테마를 클릭하고 자신이 사용하고 싶은 테마를 검색하고 Install 버튼을 클릭합니다.

 

4) 똑같은 방식으로 'atom-material-syntax-dark'를 검색 후 설치합니다.

 

5) 새로운 폴더와 파일을 생성하여 테마를 적용시킵니다.

1. File에서 Open File 탭을 클릭합니다.

 

2. 자신이 만든 폴더를 선택후 폴더 선택을 누릅니다.

 

3. 폴더 선택을 하면 이러한 화면이 나오게 되는데 테마 적용을 확인하기 위해 새로운 파일을 생성합니다.

 

4. 프로젝트를 누르고 오른쪽 마우스를 클릭하여 New File을 클릭합니다.

 

5. app.js, base.css, index.html 파일을 생성합니다.

 

6. 테마 적용하기

File에서 Settings탭을 클릭 후  Themes 버튼을 클릭합니다.

 

7. 자신의 취향에 맞는 테마를 선택합니다.

 

 

(테마 적용 전)

 

(테마 적용 후)

 

3. Node.js 설치하기

1) 브라우저 검색창에 nodejs.org을 입력하여 공식 사이트에 접속하고 빨간색 박스안에 있는 버튼을 클릭하여 다운로드 합니다.

2) 라이센스 또는 사용권 계약 조항에 동의한 후 설치를 진행합니다.

 

3) 정상적으로 설치 되었는지 윈도우 명령 프롬프트(cmd) 혹은 맥의 터미널(Terminal)에서 node -v를 실행합니다.

4. 뷰 개발자 도구 설치

 

1) 구글에서 vue.js devtools를 검색후 아래의 링크를 클릭합니다.

 

2) 오른쪽 상단에 있는 [Chrome에 추가] 버튼을 클릭합니다.

 

3) [확장 프로그램 추가]버튼을클릭하면 주소창 오른쪽에 뷰 로고 모양의 아이콘이 생깁니다.

 

4) 주소창 오른쪽에 있는 점3개를 누르고 도구 더보기에서 확장 프로그램 버튼을 클릭합니다.

 

5) 뷰 개발자 도구에 세부 정보를 클릭합니다.

 

6) '파일 URL에 대한 엑세스를 허용'버튼을 클릭해서 활성화 합니다.

'Vue' 카테고리의 다른 글

[Vue] HTTP 통신  (0) 2020.02.13
[Vue] 라우터(기초)  (0) 2020.01.31
[Vue] 컴포넌트  (0) 2020.01.30
[Vue] 인스턴스  (0) 2020.01.29
Vue란??  (0) 2020.01.27
참고 : Vue.js 입문책을 읽고 학습한 내용을 블로그에 정리한 글이므로 내용상 오류가 있을 수 있습니다. 
        오류가 있다면 댓글 남겨주시면 감사하겠습니다.

Vue

  • Vue는 웹 화면을 개발하기 위해 자바스크립트로  개발된 프레임워크입니다.
  • 구글에서 근무하던 에반 유(Evan You)가 AngularJS를 사용하다가 자기가 좋아하는 특성과 초보 개발자들도 접근이 가능한 프레임워크를 만들기 위해서 만들었습니다.
  • Vue는 라이브러리 역할과 프레임워크 역할을 모두 합니다 하지만 헷갈릴 수 있기 때문에 프레임워크라고 정의합니다.

뷰 프레임워크

Vue의 장점

1.  Angular와 React에 비해 배우기 쉽다.

      - Angular : 타입스크립트(TypeScript)와 ES6(ECMAScript 2015)등 많은 학습이 필요합니다.

      - React : 입문자가 배우기위해 ES6와 JSX등 학습이 필요합니다.

2.  Angular와 React 보다 성능이 우수하고 더 빠릅니다.

3.  Angular와 React의 장점을 모두 갖고 있습니다

       - Angular : 데이터 바인딩 특성

       - React : 가상 돔 기반 렌더링 특징

 

Vue의 특징

1. MVVM패턴을 이용한 화면 개발 

MVVM패턴이란?

화면을 모델(Model) - 뷰(View) - 뷰 모델(ViewModel) 구조로 개발하는 방식을 말합니다.

MVVM패턴은 화면의 부분을 제어하는 코드와 데이터의 부분을 제어하는 코드를 분리하였기 때문에

코드를 더 쉽게 이해하고 유지 보수를 편하게 할 수 있습니다.

 

 

구글에 Vue를 검색했을 경우 : 사진(왼쪽 - view) (중간 - ViewModel) (오른쪽 - Model)

 

뷰(View)

사용자에게 보이는 화면

ex) - 구글 로고, 검색창, 검색버튼

뷰 모델(ViewModel)

뷰와 모델의 중간 부분, 돔 리스너와 데이터 바인딩을 제공 

돔 리스너(DOM Listener)

돔의 변경된 부분을 감지하여 알맞게 특정 기능을 처리하는 장치

ex) - 검색 버튼을 눌렀을때 발생하는 과정

데이터 바인딩(Data Binding)

Model(데이터)과 View(화면)를 동기화해주는 역할

ex) - Vue의 관련된 데이터를 가져와 화면에 보내주는 역할

모델(Model)

데이터를 저장하는 저장소

ex) - Vue와 관련된 데이터들

돔(DOM)

HTML 요소(클래스, 태그, 속성 등)의 정보를 담고 있는 데이터 트리  

 

MVVM구조 처리 과정 설명

  1. View에서 Vue단어를 입력 후 검색합니다
  2. ViewModel은 검색버튼을 감지후 Model에서 Vue에 해당하는 데이터를 가져오는 로직(돔 리스너)을 실행합니다
  3. ViewModel은 Model에서가져온 Vue데이터를 View(화면)에 동기화합니다(데이터 바인딩)
  4. ViewModel에서 처리된 결과를 View에 갱신하여 보여줍니다.

2. 컴포넌트 기반 프레임워크

컴포넌트(Component) - 레고 블럭과 같이 재사용이 가능한 최소 단위를 말합니다.

 

(Vue에서 컴포넌트를 사용했을 때)

  • 프로그래밍을 할 때 재사용하기가 쉽습니다
  • HTML 코드에서 화면의 구조를 쉽게 파악 할 수있습니다.
  • 모두가 정해진 방식으로 컴포넌트를 사용하기 때문에 빠르게 구현할 수 있고 다른 사람이 작성한 코드를 볼 때 쉽게 볼 수있습니다.

3. 리액트와 앵귤러의 장점을 가진 프레임워크

  1. 앵귤러의 양방향 데이터 바인딩(Two-way Data Binding)
  2. 리액트의 단방향 데이터 바인딩(One-way Data Binding)
  3. 리액트의 가상돔 렌더링 방식
양방향 데이터 바인딩 View와 Model의 값중에 한쪽이 변경되면 다른 한쪽도 변경되는 것
단방향 데이터 바인딩 항상 상위 컴포넌트에서 하위 컴포넌트 한 방향으로 전달되는 것
가상돔 렌더링 방식 특정 돔 요소를 추가하거나 삭제할 때 화면 전체를 갱신 하지않고 특정한 방식으로 화면을 갱신하는 것

 

'Vue' 카테고리의 다른 글

[Vue] HTTP 통신  (0) 2020.02.13
[Vue] 라우터(기초)  (0) 2020.01.31
[Vue] 컴포넌트  (0) 2020.01.30
[Vue] 인스턴스  (0) 2020.01.29
[Vue] 개발 환경 설정(Window)  (0) 2020.01.27

+ Recent posts