Vue3와 Vue2의 차이점은 무엇입니까?

먼저 Vue2에 비해 Vue3의 장점에 대해 이야기해 보겠습니다.

더 빠른 렌더링 속도,
더 작은 크기
, 더 적은 메모리 사용량,
더 풍부한 기능
Vue3가 Vue2보다 훨씬 나은 것 같지만 구체적인 강점은 무엇입니까? 몇 가지 코드 예제를 살펴보겠습니다.

첫 번째는 Vue3 및 Vue2를 설치하는 것입니다.

npm install vue@next  
npm install vue

Vue3에서 컴포넌트를 등록하려면 다음과 같이 하면 됩니다.

import {
    
     defineComponent } from 'vue'  
  
export default defineComponent({
    
      
  // component options here  
})

반면 Vue2에서는 다음을 수행해야 합니다.

import Vue from 'vue'  
  
export default Vue.extend({
    
      
  // component options here  
})

별 차이가 없어 보이지만 내부 구현상 Vue3는 ES6 클래스를 사용하여 구성 요소를 정의하므로 구성 요소의 수명 주기를 보다 명확하고 이해하기 쉽게 만들 수 있습니다. 동시에 Vue3에서는 데코레이터를 사용하여 다음과 같은 구성 요소의 수명 주기 메서드를 정의할 수 있습니다.

import {
    
     defineComponent } from 'vue'  
  
export default defineComponent({
    
      
  setup() {
    
      
    const text = ref('Hello, world!')  
    const button = ref(null)  
    const count = ref(0)  
    const increment = () => {
    
      
      count.value += 1  
    }  
    button.value.addEventListener('click', increment)  
    return {
    
     text, button, count }  
  }  
})

위의 예에서는 setup() 함수를 사용하여 구성 요소의 논리를 정의하고 ref() 함수를 사용하여 반응 데이터를 생성했습니다. 이러한 작성 방식은 구성 요소를 더 간결하고 이해하기 쉽게 만들 수 있습니다. Vue2에서는 구성 요소의 논리를 정의하기 위해 데이터 및 메서드와 같은 옵션을 수동으로 정의해야 합니다.

이러한 변경 사항 외에도 몇 가지 다른 차이점이 있습니다.

Vue3는 기본적으로 비동기 구성 요소와 종속성 주입을 사용하여 애플리케이션을 더 매끄럽게 만들 수 있습니다. 그러나 Vue2에서는 이러한 기능을 수동으로 구성해야 합니다.
Vue3는 더 많은 JSX 구문을 지원하므로 구성 요소를 더 간결하고 이해하기 쉽게 만들 수 있습니다. 그러나 Vue2에서는 템플릿 문자열을 사용하여 구성 요소의 템플릿을 정의해야 합니다.

위의 장점 외에도 Vue3에는 Vue2에 비해 많은 개선 사항과 새로운 기능이 있습니다. 예를 들어:

더 빠른 렌더링 속도: Vue3의 응답 시스템이 재작성되어 응답이 더 빨라졌습니다. 동시에 Vue3는 새로운 가상 DOM 알고리즘, 즉 경우에 따라 기본 DOM을 직접 작동할 수 있는 하이브리드 가상 DOM을 사용하여 렌더링 속도를 더욱 향상시킵니다.
더 작은 크기: Vue2와 비교하여 Vue3는 크기가 더 작습니다 주된 이유는 함께 패키징하는 대신 ES 모듈화를 사용하기 때문입니다. 동시에 Vue3는 일부 기능을 최적화하여 크기를 더욱 줄입니다.
메모리 사용량 감소: Vue3는 얕은 비교 알고리즘을 사용하여 객체를 비교하므로 Vue2의 심층 비교 알고리즘보다 적은 메모리를 사용합니다. 동시에 Vue3는 일부 내부 개체를 최적화하여 메모리 사용량을 더욱 줄입니다.
더 풍부한 기능: Vue3는 구성 요소 컨텍스트, 사용자 지정 명령, 전역 상태 관리 등과 같은 몇 가지 새로운 기능을 추가하여 애플리케이션 개발을 보다 편리하고 유연하게 만듭니다.
몇 가지 특정 코드 예제를 살펴보겠습니다.

렌더링 속도: 간단한 구성 요소를 사용하여 렌더링 속도를 테스트합니다.

<template>  
  <div>{
   
   { message }}</div>  
</template>  
  
<script>  
export default {
      
        
  data() {
      
        
    return {
      
        
      message: 'Hello, world!'  
    }  
  }  
}  
</script>

Vue3에서는 <template>태그를 사용하여 구성 요소의 템플릿을 정의하고 <script>태그를 사용하여 구성 요소의 논리를 정의합니다. 템플릿에서 보간 표현식을 사용하여 메시지 값을 표시합니다. 논리에서 데이터 함수를 사용하여 메시지 값을 정의합니다. 구성 요소 종료 시 전체 구성 요소를 내보냅니다.

Vue2에서는 <script>태그를 사용하여 구성 요소의 템플릿과 로직을 정의합니다. 템플릿에서 이중 괄호 구문을 사용하여 메시지 값을 표시합니다. 로직에서 데이터 속성을 사용하여 메시지 값을 정의합니다. 구성 요소 종료 시 전체 구성 요소를 내보냅니다.

볼륨: Webpack을 사용하여 Vue3 및 Vue2의 샘플 코드를 패키징합니다.

<template>  
  <div>{
   
   { message }}</div>  
</template>  
  
<script>  
export default {
      
        
  data() {
      
        
    return {
      
        
      message: 'Hello, world!'  
    }  
  }  
}  
</script>

패키지된 코드에서 Vue3의 볼륨이 Vue2의 볼륨보다 훨씬 작은 것을 볼 수 있습니다. 주된 이유는 Vue3가 코드를 함께 패키징하는 대신 ES 모듈화를 사용하여 코드를 패키징하기 때문입니다. 동시에 Vue3는 일부 기능을 최적화하여 크기를 더욱 줄입니다.

추천

출처blog.csdn.net/2301_77795034/article/details/131194327