Vue CLI
Vue CLI là một công cụ dòng lệnh mạnh mẽ giúp bạn khởi tạo và quản lý các dự án Vue.js một cách nhanh chóng. Nó cung cấp một cấu trúc thư mục chuẩn, môi trường phát triển cục bộ, khả năng hot-reloading, hỗ trợ kiểm thử đơn vị và các tùy chỉnh cho việc đóng gói ứng dụng.Cài đặt Vue CLI
Để cài đặt Vue CLI, bạn cần đảm bảo đã cài đặt Node.js (phiên bản 8.x trở lên được khuyến nghị) và Git trên hệ thống của mình. Sau đó, chạy lệnh sau trong terminal:
npm install -g @vue/cli
Để xác minh việc cài đặt, bạn có thể chạy:
vue --version
Khởi tạo dự án mới
Có hai cách chính để tạo một dự án Vue mới bằng Vue CLI:
-
Sử dụng giao diện dòng lệnh tương tác:
vue create ten_du_an_cua_banCông cụ sẽ hướng dẫn bạn qua các tùy chọn cấu hình dự án, bao gồm tên, mô tả, tác giả, chế độ build Vue, tích hợp Vue Router, ESLint để kiểm tra mã nguồn, và thiết lập kiểm thử đơn vị hoặc kiểm thử end-to-end.
-
Sử dụng template có sẵn (ví dụ: webpack):
vue init webpack ten_du_an_cua_banTương tự như cách trên, bạn sẽ được hỏi các câu hỏi để tùy chỉnh dự án. Chọn "yes" để tự động cài đặt các gói npm cần thiết sau khi dự án được tạo.
Chạy dự án
Sau khi tạo dự án, di chuyển vào thư mục dự án và chạy các lệnh sau:
cd ten_du_an_cua_ban
npm install
npm run serve
Bạn cũng có thể sử dụng các IDE như WebStorm để tạo dự án Vue mới bằng cách chọn tùy chọn "Vue.js" khi tạo dự án.
Cấu trúc thư mục cơ bản
node_modules/: Chứa tất cả các gói phụ thuộc của dự án.src/: Thư mục chứa mã nguồn chính của ứng dụng.package.json: Tệp cấu hình dự án, liệt kê các dependencies và scripts.main.js: Tệp điểm vào chính của ứng dụng Vue.
Webpack
Webpack là một trình đóng gói module (module bundler) mạnh mẽ, chủ yếu dùng để chuyển đổi mã nguồn JavaScript hiện đại (ES6+) thành các phiên bản tương thích với các trình duyệt cũ hơn (ES5). Nó cũng có thể xử lý các loại tài nguyên khác như CSS, hình ảnh, v.v.
Cài đặt Webpack
Bạn có thể cài đặt Webpack và Webpack CLI toàn cục hoặc cục bộ cho từng dự án:
npm install -g webpack webpack-cli
Sử dụng Webpack
Trong thư mục dự án, bạn chỉ cần chạy lệnh webpack để thực hiện quá trình đóng gói. Tham số --watch cho phép Webpack tự động theo dõi các thay đổi và đóng gói lại khi có sự chỉnh sửa.
Cấu hình Webpack
Đối với các phiên bản Vue CLI mới, thư mục build/ có thể không còn tồn tại. Để tùy chỉnh cấu hình Webpack, bạn cần tạo một tệp vue.config.js ở thư mục gốc của dự án và định nghĩa các cài đặt mong muốn trong đó.
Vue Router
Vue Router là trình quản lý định tuyến chính thức của Vue.js, cho phép bạn xây dựng các ứng dụng một trang (SPA) với khả năng điều hướng mượt mà giữa các thành phần. Các tính năng nổi bật bao gồm:
- Định tuyến lồng nhau (nested routes) và các chế độ xem lồng nhau.
- Cấu hình định tuyến dựa trên thành phần và có tính module hóa.
- Hỗ trợ tham số đường dẫn, tham số truy vấn và các ký tự đại diện.
- Hiệu ứng chuyển đổi giữa các chế độ xem dựa trên hệ thống transition của Vue.js.
- Kiểm soát điều hướng chi tiết.
- Tự động thêm lớp CSS cho các liên kết đang hoạt động.
- Chế độ lịch sử HTML5 hoặc chế độ hash (tự động hạ cấp cho IE9).
- Hành vi cuộn trang tùy chỉnh.
Cài đặt Vue Router
Trong thư mục dự án, chạy lệnh sau:
npm install vue-router --save-dev
Sau khi cài đặt, bạn sẽ thấy vue-router xuất hiện trong phần devDependencies của package.json và các tệp tương ứng trong thư mục node_modules.
Cấu hình và sử dụng
1. Tạo thành phần nội dung
Tạo một tệp mới, ví dụ src/components/Content.vue, để làm trang đích cho việc điều hướng:
<template>
<div>Đây là trang nội dung</div>
</template>
<script>
export default {
name: "ContentPage"
}
</script>
<style scoped>
/* Các style riêng cho component */
</style>
2. Định nghĩa các tuyến đường (routes)
Tạo thư mục src/router và trong đó có tệp index.js để định nghĩa các tuyến đường:
import Vue from 'vue'
import VueRouter from 'vue-router'
import Content from '@/components/Content.vue' // Sử dụng alias @ cho thư mục src
Vue.use(VueRouter)
const routes = [
{
path: '/noi-dung', // Đường dẫn URL
name: 'ContentRoute', // Tên của tuyến đường
component: Content // Thành phần sẽ được hiển thị
}
]
const router = new VueRouter({
routes,
mode: 'history' // Sử dụng chế độ history để có URL đẹp hơn
})
export default router
3. Đăng ký Vue Router vào ứng dụng
Trong tệp src/main.js, nhập và sử dụng đối tượng router đã tạo:
import Vue from 'vue'
import App from './App.vue'
import router from './router' // Import đối tượng router
Vue.config.productionTip = false
new Vue({
router, // Đưa router vào instance Vue
render: h => h(App),
}).$mount('#app')
4. Sử dụng trong thành phần chính (App.vue)
Trong tệp src/App.vue, sử dụng các thẻ router-link để tạo liên kết điều hướng và router-view để hiển thị thành phần tương ứng với tuyến đường hiện tại:
<template>
<div id="app">
<nav>
<router-link to="/noi-dung">Đi tới trang nội dung</router-link>
</nav>
<router-view></router-view> <!-- Nơi các thành phần tuyến đường sẽ được render -->
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
/* CSS cho App */
</style>
Khi bạn nhấp vào liên kết "Đi tới trang nội dung", thành phần Content.vue sẽ được hiển thị bên trong thẻ router-view.