BÀI 3: DATA BINDING TRONG VUE.JS

jk5587725

By jk5587725

Đăng ngày Tháng 7 7, 2025

Mục tiêu:

  • Hiển thị nội dung từ data() ra HTML bằng {{ }}
  • Gắn thuộc tính HTML động bằng v-bind
  • Tạo input nhập dữ liệu và liên kết 2 chiều bằng v-model

Kết quả học được:

Tính năngVue DirectiveVí dụ
Hiển thị nội dung{{ variable }}{{ message }}
Gắn thuộc tínhv-bind:href:href="link"
Liên kết 2 chiềuv-model<input v-model="name">

Giao diện học (Code + Output)

<!DOCTYPE html>
<html lang="vi">
<head>
  <meta charset="UTF-8">
  <title>Vue Data Binding</title>
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  <style>
    body {
      font-family: Arial;
      display: flex;
      gap: 30px;
      padding: 20px;
    }
    .code {
      width: 50%;
    }
    .output {
      width: 50%;
      border-left: 2px solid #ccc;
      padding-left: 20px;
    }
    input {
      padding: 5px;
      margin-top: 5px;
    }
  </style>
</head>
<body>

  <div class="code">
    <h2>Mã nguồn Vue:</h2>
    <pre><code>&lt;div id="app"&gt;
  &lt;p&gt;Nội dung từ data: {{ message }}&lt;/p&gt;

  &lt;a v-bind:href="link"&gt;Truy cập Google&lt;/a&gt;

  &lt;p&gt;Nhập tên của bạn:&lt;/p&gt;
  &lt;input v-model="name"&gt;
  &lt;p&gt;Xin chào, {{ name }}!&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  const { createApp } = Vue;
  createApp({
    data() {
      return {
        message: 'Chào mừng đến với Vue!',
        link: 'https://google.com',
        name: ''
      }
    }
  }).mount('#app')
&lt;/script&gt;</code></pre>
  </div>

  <div class="output">
    <h2>Kết quả hiển thị:</h2>
    <div id="app">
      <p>Nội dung từ data: {{ message }}</p>

      <a v-bind:href="link" target="_blank">Truy cập Google</a>

      <p>Nhập tên của bạn:</p>
      <input v-model="name">
      <p>Xin chào, {{ name }}!</p>
    </div>
  </div>

  <script>
    const { createApp } = Vue;
    createApp({
      data() {
        return {
          message: 'Chào mừng đến với Vue!',
          link: 'https://google.com',
          name: ''
        }
      }
    }).mount('#app')
  </script>

</body>
</html>

Giải thích:

Câu lệnhTác dụng
{{ message }}Hiển thị nội dung từ biến trong data()
v-bind:href="link" (viết tắt: :href="link")Gắn giá trị biến vào thuộc tính HTML
v-model="name"Kết nối input 2 chiều (nhập đổi → Vue đổi, Vue đổi → input đổi)

Bài tập thực hành:

  1. Thay đổi link thành "https://vuejs.org" → bấm vào link kiểm tra.
  2. Gắn thêm 1 hình ảnh: <img v-bind:src="imgUrl"> và thêm imgUrl vào data().
  3. Tạo thêm input v-model="email" và hiển thị ra {{ email }} bên dưới.

📂 Chuyên mục:

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

[global_subscribe_form]

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.