Các Chỉ Thị Cơ Bản Trong Vue.js

Hiển thị nội dung thuần: v-text

Thay thế toàn bộ nội dung văn bản của phần tử (tương đương textContent), yêu cầu thẻ phải có closing tag.

Render HTML động: v-html

Chèn trực tiếp markup HTML vào phần tử (tương đương innerHTML). Cần lưu ý rủi ro bảo mật khi sử dụng với dữ liệu người dùng.

Duyệt cấu trúc dữ liệu: v-for

Cú pháp lặp với mảng:

<div v-for="(sanPham, chiSo) in danhSach">{{ chiSo }} - {{ sanPham.ten }}</div>

Với object:

<div v-for="(giaTri, khoa, chiSo) in thongTin">{{ khoa }}: {{ giaTri }}</div>

Điều kiện hiển thị

v-if/v-else-if/v-else: Thêm/xóa phần tử khỏi DOM dựa trên điều kiện

<button v-if="trangThai === 1">Trạng thái 1</button>
<button v-else-if="trangThai === 2">Trạng thái 2</button>

v-show: Ẩn/hiện phần tử qua thuộc tính CSS display

<div v-show="daDangNhap">Nội dung bảo mật</div>

Ràng buộc thuộc tính động: v-bind

Cú pháp đầy đủ và viết tắt:

<img v-bind:src="duongDanAnh" :alt="'Ảnh mô tả'">

Lưu ý: Giá trị chuỗi tĩnh phải đặt trong dấu nháy đơn.

Ràng buộc hai chiều: v-model

Đồng bộ dữ liệu giữa form input và state:

<input v-model="timKiem" placeholder="Nhập từ khóa">
<p>Bạn đang tìm: {{ timKiem }}</p>

Chỉ áp dụng cho các phần tử có thuộc tính value (input, textarea, select).

Xử lý sự kiện: v-on

Cú pháp sự kiện với viết tắt @:

<button @click="tangGiaTri">+1</button>
<button @click="soLuong = 0">Đặt lại</button>
<!DOCTYPE html>
<html>
<head>
    <script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
    <style>.hang-chan { background: #eaeaea; }</style>
</head>
<body>
    <div id="ung-dung"></div>
    <script>
        new Vue({
            el: '#ung-dung',
            template: `
            <div>
                <h2 v-text="noiDung"></h2>
                <div v-html="markup"></div>
                
                <button v-if="giaTri === 1">Lựa chọn A</button>
                <button v-else-if="giaTri === 2">Lựa chọn B</button>
                
                <div v-show="hienThi" class="thong-bao">Thông báo quan trọng!</div>
                
                <img :src="anhMinhHoa" :alt="'Demo image'">
                
                <input v-model="quocTich" placeholder="Nhập thử Việt Nam">
                <div v-if="quocTich === 'Việt Nam'">Xin chào đất nước!

Thẻ: vuejs v-model v-for v-bind

Đăng vào ngày 20 tháng 6 lúc 03:06