Quản lý chu kỳ sống và định tuyến trong uni-app

Trong phát triển ứng dụng bằng uni-app, việc hiểu rõ về chu kỳ sống của ứng dụng, trang và cách quản lý định tuyến đóng vai trò quan trọng. Dưới đây là các khái niệm cơ bản và cách sử dụng chúng.

Chu kỳ sống ứng dụng

uni-app cung cấp các hàm chu kỳ sống như onLaunch, onShow, và onHide để xử lý các sự kiện khi ứng dụng khởi động, hiển thị hoặc ẩn đi. Các hàm này được kích hoạt dựa trên trạng thái hiện tại của ứng dụng.

Chu kỳ sống trang

Mỗi trang trong uni-app cũng có các hàm chu kỳ sống riêng biệt như onLoad, onShow, và onReady. Những hàm này giúp bạn kiểm soát hành vi của trang khi nó được tải, hiển thị hoặc sẵn sàng cho người dùng tương tác.

Định tuyến

Định tuyến trong uni-app được quản lý thông qua cấu hình trong file pages.json. Bạn cần thiết lập đường dẫn và kiểu giao diện cho mỗi trang ở đây. Cách làm này tương tự như việc cấu hình định tuyến trong các ứng dụng mini-program thông qua file app.json. Nếu muốn sử dụng cách tiếp cận giống với Vue Router, bạn có thể tìm kiếm plugin tương thích trên thị trường plugin.

Cách chuyển trang

Có hai cách chính để chuyển trang trong uni-app: 1. Sử dụng thành phần navigator. 2. Gọi API trực tiếp.

Stack trang

Framework quản lý các trang đang hoạt động dưới dạng stack. Khi chuyển đổi giữa các trang, stack sẽ thay đổi theo các quy tắc sau:
Cách chuyển Thay đổi stack Kích hoạt khi
Khởi tạo Thêm trang mới vào stack Mở trang đầu tiên của ứng dụng
Mở trang mới Thêm trang mới vào stack Gọi API uni.navigateTo hoặc sử dụng thành phần <navigator open-type="navigate"/>
Chuyển hướng Xóa trang hiện tại và thêm trang mới Gọi API uni.redirectTo hoặc sử dụng thành phần <navigator open-type="redirectTo"/>
Quay lại Xóa các trang liên tục cho đến trang mục tiêu Gọi API uni.navigateBack, sử dụng thành phần <navigator open-type="navigateBack"/>, hoặc người dùng nhấn nút quay lại
Chuyển Tab Xóa tất cả các trang ngoài trang Tab mới Gọi API uni.switchTab hoặc sử dụng thành phần <navigator open-type="switchTab"/>
Tải lại Xóa tất cả các trang ngoại trừ trang mới Gọi API uni.reLaunch hoặc sử dụng thành phần <navigator open-type="reLaunch"/>

Phán đoán môi trường chạy

Bạn có thể sử dụng biến process.env.NODE_ENV để xác định xem ứng dụng đang chạy trong môi trường phát triển hay sản xuất.

if (process.env.NODE_ENV === 'development') {
    console.log('Ứng dụng đang chạy trong môi trường phát triển');
} else {
    console.log('Ứng dụng đang chạy trong môi trường sản xuất');
}
Nếu cần nhiều môi trường hơn, chẳng hạn như môi trường thử nghiệm, bạn có thể cấu hình thêm trong file package.json hoặc vue.config.js.

Xác định nền tảng

Việc xác định nền tảng có thể thực hiện ở hai giai đoạn: biên dịch và thời gian chạy.
  • Biên dịch: Sử dụng điều kiện biên dịch để áp dụng mã khác nhau cho từng nền tảng.

// #ifdef H5
alert("Chỉ có trên nền tảng H5");
// #endif
  • Thời gian chạy: Sử dụng hàm uni.getSystemInfoSync().platform để nhận biết nền tảng hiện tại là Android, iOS hay công cụ phát triển.

const platform = uni.getSystemInfoSync().platform;
switch (platform) {
    case 'android':
        console.log('Đang chạy trên Android');
        break;
    case 'ios':
        console.log('Đang chạy trên iOS');
        break;
    default:
        console.log('Đang chạy trên công cụ phát triển');
        break;
}

Thẻ: uni-app vuejs mobile-development

Đăng vào ngày 16 tháng 6 lúc 21:51