본문으로 건너뛰기

Vue.js 개요.

Vue.js 소개

Vue.js는 사용자 인터페이스를 구축하기 위해 사용되는 점진적인 JavaScript 프레임워크입니다. "점진적인 프레임워크"라고 불리는 이유는 기존 프로젝트에 점진적으로 채택될 수 있으며, 개발자가 필요한 만큼의 기능만 사용할 수 있기 때문입니다.

Vue.js는 반응형 데이터 바인딩 시스템과 컴포넌트 기반 아키텍처를 제공하여 상호작용하는 웹 애플리케이션을 구축하는 과정을 간소화합니다. 유연하고 확장 가능하며 학습하기 쉬운 설계로, 개발자들 사이에서 인기가 있는 선택지입니다.

Vue.js의 역사

Vue.js는 2014년에 구글의 전 직원인 Evan You에 의해 만들어졌습니다. 처음에는 사이드 프로젝트로 개발되었지만, 간결함과 성능 때문에 빠르게 인기를 얻었습니다. 그 이후로 Vue.js는 꾸준히 성장하여 주요한 JavaScript 프레임워크 중 하나가 되었습니다.

Vue.js의 기능

  1. 반응형 데이터 바인딩: Vue.js는 데이터 모델을 기반으로 DOM을 선언적으로 렌더링하는 반응형 데이터 바인딩 시스템을 사용합니다. 즉, 데이터가 변경되면 DOM이 자동으로 해당 변경 내용을 반영합니다.

    <template>
    <div>
    <p>{{ message }}</p>
    </div>
    </template>

    <script>
    export default {
    data() {
    return {
    message: '안녕하세요, Vue.js!'
    };
    }
    };
    </script>

    위의 예제에서 message 변수는 <p> 요소에 바인딩되어 있습니다. message 값이 변경되면 <p> 요소는 자동으로 새로운 값으로 업데이트됩니다.

  2. 컴포넌트 기반 아키텍처: Vue.js는 재사용 가능한 컴포넌트를 조합하여 복잡한 UI를 구축할 수 있도록 합니다. 컴포넌트는 독립적으로 구성되어 애플리케이션 전체에서 쉽게 재사용할 수 있으며, 코드의 재사용성과 유지보수성을 높입니다.

    <template>
    <button @click="increment">{{ count }}</button>
    </template>

    <script>
    export default {
    data() {
    return {
    count: 0
    };
    },
    methods: {
    increment() {
    this.count++;
    }
    }
    };
    </script>

    이 예제에서는 클릭할 때마다 카운터를 증가시키는 간단한 버튼 컴포넌트를 생성합니다. count 변수는 버튼의 레이블에 바인딩되어 있으며, increment 메서드는 호출될 때마다 카운트를 업데이트합니다.

  3. 지시자: Vue.js는 DOM을 선언적으로 조작하기 위해 일련의 내장 지시자를 제공합니다. 지시자는 v- 접두사로 시작하는 특수 속성입니다.

    <template>
    <div>
    <p v-if="showMessage">{{ message }}</p>
    <button @click="toggleMessage">메시지 전환</button>
    </div>
    </template>

    <script>
    export default {
    data() {
    return {
    message: '안녕하세요, Vue.js!',
    showMessage: true
    };
    },
    methods: {
    toggleMessage() {
    this.showMessage = !this.showMessage;
    }
    }
    };
    </script>

    이 예제에서 v-if 지시자는 showMessage 변수의 값에 따라 <p> 요소를 조건부로 렌더링합니다. 버튼을 클릭하면 메시지의 가시성이 전환됩니다.

  4. 계산된 속성: Vue.js는 개발자가 데이터 모델에서 파생된 계산된 속성을 정의할 수 있도록 합니다. 계산된 속성은 캐시되어 의존성이 변경될 때에만 재평가되므로 성능이 좋아집니다.

    <template>
    <div>
    <p>{{ fullName }}</p>
    </div>
    </template>

    <script>
    export default {
    data() {
    return {
    firstName: 'John',
    lastName: 'Doe'
    };
    },
    computed: {
    fullName() {
    return this.firstName + ' ' + this.lastName;
    }
    }
    };
    </script>

    이 예제에서 fullName 계산된 속성은 firstNamelastName 변수를 연결합니다. 이 변수 중 하나라도 변경될 때마다 fullName 속성이 자동으로 업데이트됩니다.

Vue.js 예제

Vue.js로 시작하려면 Vue.js에서 제공하는 공식 문서와 튜토리얼을 참고할 수 있습니다.

다음은 위에서 설명한 일부 기능을 보여주기 위한 몇 가지 추가적인 예제입니다:

  1. 할 일 목록: Vue.js를 사용한 간단한 할 일 목록 애플리케이션.

    <template>
    <div>
    <input v-model="newTodo" placeholder="새로운 할 일을 입력하세요">
    <button @click="addTodo">할 일 추가</button>
    <ul>
    <li v-for="todo in todos" :key="todo.id">{{ todo.text }}</li>
    </ul>
    </div>
    </template>

    <script>
    export default {
    data() {
    return {
    newTodo: '',
    todos: []
    };
    },
    methods: {
    addTodo() {
    if (this.newTodo.trim()) {
    this.todos.push({
    id: Math.random(),
    text: this.newTodo
    });
    this.newTodo = '';
    }
    }
    }
    };
    </script>

    이 예제에서 사용자는 입력 필드에 새로운 할 일을 입력할 수 있으며, "할 일 추가" 버튼을 클릭하면 할 일이 목록에 추가됩니다. 할 일은 todos 배열에 저장되며, v-for 지시자를 사용하여 각 할 일 항목을 렌더링합니다.

  2. 라우팅: Vue Router를 사용한 여러 페이지가 있는 간단한 애플리케이션.

    // main.js
    import Vue from 'vue';
    import VueRouter from 'vue-router';
    import Home from './components/Home.vue';
    import About from './components/About.vue';

    Vue.use(VueRouter);

    const routes = [
    { path: '/', component: Home },
    { path: '/about', component: About }
    ];

    const router = new VueRouter({
    routes
    });

    new Vue({
    router
    }).$mount('#app');
    <!-- Home.vue -->
    <template>
    <div>
    <h1>홈 페이지에 오신 것을 환영합니다!</h1>
    </div>
    </template>
    <!-- About.vue -->
    <template>
    <div>
    <h1>회사 소개</h1>
    <p>저희는 개발자 팀입니다.</p>
    </div>
    </template>

    이 예제에서 Vue Router를 사용하여 홈 페이지와 회사 소개 페이지 두 개의 경로를 정의합니다. 링크를 클릭하면 해당 페이지로 이동합니다.

이러한 예제는 Vue.js의 강력함과 유연성을 간단히 소개하는 것입니다. 이러한 기능을 조합함으로써 복잡하고 상호작용하는 웹 애플리케이션을 효율적으로 구축할 수 있습니다.

이 튜토리얼이 Vue.js 시작에 도움이 되기를 바랍니다. 공식 문서를 참고하고 다양한 기능과 예제를 실험해 보는 것을 자유롭게 해보세요.