Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu của màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Hướng dẫn Vue

Vue HOME Vue Giới thiệu Vue Chỉ thị Vue v-bind Vue v-if Vue v-show Vue v-for Vue Sự kiện Vue v-on Vue Methods Vue Event Modifier Vue Forms Vue v-model Vue CSS Binding Vue Tính toán Thuộc tính Vue Watchers Vue Mẫu

Mở rộng quy mô

Vue Tại sao, Cách thức và Thiết lập Trang SFC đầu tiên của Vue Thành phần Vue Đạo cụ Vue Vue v-for Thành phần Vue $emit() Vue Thuộc tính dự phòng Vue Kiểu dáng có phạm vi Vue Thành phần cục bộ Vue Slots Vue v-slot Vue Scoped Slots Vue Thành phần động Vue Teleport Vue Yêu cầu HTTP Mẫu Vue Tham chiếu Vòng đời Vue Móc nối Vue Cung cấp/Tiêm Vue Định tuyến Vue Đầu vào biểu mẫu Vue Vue Animations Vue Animations với v-for Vue Build Vue Composition API

Tham khảo Vue

Thuộc tính tích hợp của Vue Các thành phần tích hợp của Vue Các phần tử tích hợp Vue Ví dụ thành phần Vue Chỉ thị Vue Tùy chọn phiên bản Vue Móc vòng đời Vue

Vue Ví dụ

Ví dụ về Vue Bài tập Vue Vue Quiz Vue Server Chứng chỉ Vue

Vue v-model Chỉ thị

So với JavaScript thông thường, làm việc với các biểu mẫu trong Vue dễ dàng hơn vì lệnh v-model kết nối với tất cả các loại phần tử đầu vào theo cùng một cách.

v-model tạo liên kết giữa thuộc tính value phần tử đầu vào và giá trị dữ liệu trong phiên bản Vue. Khi bạn thay đổi đầu vào, dữ liệu sẽ cập nhật và khi dữ liệu thay đổi, đầu vào cũng sẽ cập nhật (ràng buộc hai chiều).

Ràng buộc hai chiều

Như chúng ta đã thấy trong ví dụ về danh sách mua sắm ở trang trước, v-model cung cấp cho chúng ta liên kết hai chiều, nghĩa là các phần tử đầu vào của biểu mẫu sẽ cập nhật phiên bản dữ liệu Vue và một thay đổi trong dữ liệu phiên bản Vue sẽ cập nhật các đầu vào .

Ví dụ bên dưới cũng thể hiện ràng buộc hai chiều với v-model .

Ví dụ

Liên kết hai chiều: Hãy thử viết bên trong trường đầu vào để xem giá trị thuộc tính dữ liệu Vue có được cập nhật hay không. Ngoài ra, hãy thử viết trực tiếp mã để thay đổi giá trị thuộc tính dữ liệu Vue, chạy mã và xem trường đầu vào được cập nhật như thế nào.

<div id="app">
  <input type="text" v-model="inpText">
  <p> {{ inpText }} </p>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        inpText: 'Initial text'
      }
    }
  })
  app.mount('#app')
</script>
Hãy tự mình thử »

Lưu ý: Chức năng liên kết hai chiều v-model thực sự có thể đạt được bằng sự kết hợp của v-bind:valuev-on:input :

  • v-bind:value để cập nhật phần tử đầu vào từ dữ liệu phiên bản Vue,
  • v-on:input để cập nhật dữ liệu phiên bản Vue từ đầu vào.

Nhưng v-model dễ sử dụng hơn nhiều nên đó là điều chúng ta sẽ làm.


Hộp kiểm động

Chúng tôi thêm một hộp kiểm vào danh sách mua sắm của mình trên trang trước để đánh dấu xem một mặt hàng có quan trọng hay không.

Bên cạnh hộp kiểm, chúng tôi thêm văn bản luôn phản ánh trạng thái 'quan trọng' hiện tại, thay đổi linh hoạt giữa 'đúng' hoặc 'sai'.

Chúng tôi sử dụng v-model để thêm hộp kiểm và văn bản động này nhằm cải thiện tương tác của người dùng.

Chúng tôi cần:

  • một giá trị boolean trong thuộc tính dữ liệu phiên bản Vue được gọi là 'quan trọng'
  • một hộp kiểm nơi người dùng có thể kiểm tra xem mục này có quan trọng không
  • văn bản phản hồi động để người dùng có thể biết liệu mục này có quan trọng không

Dưới đây là hình thức của tính năng 'quan trọng', tách biệt khỏi danh sách mua sắm.

Ví dụ

Văn bản hộp kiểm được tạo động để văn bản phản ánh giá trị đầu vào của hộp kiểm hiện tại.

<div id="app">
  <form>
    <p>
      Important item?
      <label>
        <input type="checkbox" v-model="important">
        {{ important }}
      </label>
    </p>
  </form>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        important: false
      }
    }
  })
  app.mount('#app')
</script>
Hãy tự mình thử »

Hãy đưa tính năng động này vào ví dụ về danh sách mua sắm của chúng tôi.

Ví dụ

<div id="app">
  <form v-on:submit.prevent="addItem">
    <p>Add item</p>
    <p>Item name: <input type="text" required v-model="itemName"></p>
    <p>How many: <input type="number" v-model="itemNumber"></p>
    <p>
      Important?
      <label>
        <input type="checkbox" v-model="itemImportant">
        {{ important }}
      </label>
    </p>
    <button type="submit">Add item</button>
  </form>
  <hr>
  <p>Shopping list:</p>
  <ul>
    <li v-for="item in shoppingList">{{item.name}}, {{item.number}}</li>
  </ul>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        itemName: null,
        itemNumber: null,
        important: false,
        shoppingList: [
          { name: 'Tomatoes', number: 5, important: false }
        ]
      }
    },
    methods: {
      addItem() {
        let item = {
          name: this.itemName,
          number: this.itemNumber
          important: this.itemImportant
        }
        this.shoppingList.push(item)
        this.itemName = null
        this.itemNumber = null
        this.itemImportant = false
      }
    }
  })
  app.mount('#app')
</script>
Hãy tự mình thử »

Đánh dấu các mặt hàng đã tìm thấy trong danh sách mua sắm

Hãy thêm chức năng để các mặt hàng được thêm vào danh sách mua sắm có thể được đánh dấu là đã tìm thấy.

Chúng tôi cần:

  • các mục danh sách để phản ứng khi nhấp chuột
  • để thay đổi trạng thái của mục được nhấp thành 'đã tìm thấy' và sử dụng trạng thái này để di chuyển mục đó đi một cách trực quan và tấn công nó bằng CSS

Chúng tôi tạo một danh sách chứa tất cả các mục chúng tôi cần tìm và một danh sách bên dưới chứa các mục được tìm thấy đã được gạch ngang. Thực tế, chúng ta có thể đặt tất cả các mục trong danh sách đầu tiên và tất cả các mục trong danh sách thứ hai, đồng thời chỉ cần sử dụng v-show với thuộc tính dữ liệu Vue 'được tìm thấy' để xác định xem nên hiển thị mục trong danh sách thứ nhất hay thứ hai.

Ví dụ

Sau khi thêm các mặt hàng vào danh sách mua sắm, chúng ta có thể giả vờ đi mua sắm, nhấp vào các mặt hàng đó sau khi tìm thấy chúng. Nếu chúng tôi nhấp nhầm vào một mục, chúng tôi có thể đưa mục đó trở lại danh sách 'không tìm thấy' bằng cách nhấp vào mục đó một lần nữa.

<div id="app">
  <form v-on:submit.prevent="addItem">
    <p>Add item</p>
    <p>Item name: <input type="text" required v-model="itemName"></p>
    <p>How many: <input type="number" v-model="itemNumber"></p>
    <p>
      Important?
      <label>
        <input type="checkbox" v-model="itemImportant">
        {{ important }}
      </label>
    </p>
    <button type="submit">Add item</button>
  </form>

  <p><strong>Shopping list:</strong></p>
  <ul id="ulToFind">
    <li v-for="item in shoppingList"
        v-bind:class="{ impClass: item.important }"
        v-on:click="item.found=!item.found"
        v-show="!item.found">
          {{ item.name }}, {{ item.number}}
    </li>
  </ul>
  <ul id="ulFound">
    <li v-for="item in shoppingList"
        v-bind:class="{ impClass: item.important }"
        v-on:click="item.found=!item.found"
        v-show="item.found">
          {{ item.name }}, {{ item.number}}
    </li>
  </ul>

</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        itemName: null,
        itemNumber: null,
        important: false,
        shoppingList: [
          { name: 'Tomatoes', number: 5, important: false, found: false }
        ]
      }
    },
    methods: {
      addItem() {
        let item = {
          name: this.itemName,
          number: this.itemNumber,
          important: this.itemImportant,
          found: false
        }
        this.shoppingList.push(item)
        this.itemName = null
        this.itemNumber = null
        this.itemImportant = false
      }
    }
  })
  app.mount('#app')
</script>
Hãy tự mình thử »

Sử dụng v-model để tạo The Form Itself Dynamic

Chúng ta có thể tạo một biểu mẫu để khách hàng gọi món từ thực đơn. Để thuận tiện cho khách hàng, chúng tôi chỉ đưa ra các loại đồ uống để khách hàng lựa chọn sau khi khách hàng đã chọn gọi đồ uống. Điều này có thể được cho là tốt hơn việc giới thiệu cho khách hàng tất cả các món trong thực đơn cùng một lúc. Trong ví dụ này, chúng tôi sử dụng v-modelv-show để làm cho biểu mẫu trở nên động.

Chúng tôi cần:

  • Một biểu mẫu có các thẻ đầu vào có liên quan và nút 'Đặt hàng'.
  • Nút radio để chọn 'Bữa tối', 'Đồ uống' hoặc 'Món tráng miệng'.
  • Sau khi chọn danh mục, menu thả xuống sẽ xuất hiện với tất cả các mục trong danh mục đó.
  • Khi một mặt hàng được chọn, bạn sẽ thấy hình ảnh của nó, bạn có thể chọn số lượng và thêm nó vào đơn hàng. Biểu mẫu được đặt lại khi mặt hàng được thêm vào đơn hàng.

Ví dụ

Hình thức này là năng động. Nó thay đổi dựa trên sự lựa chọn của người dùng. Trước tiên, người dùng phải chọn danh mục, sau đó là sản phẩm và số lượng trước khi nút đặt hàng hiển thị và người dùng có thể đặt hàng.

Hãy tự mình thử »

Bài tập Vue

Kiểm tra bản thân bằng các bài tập

Bài tập:

Cung cấp mã chính xác để ngăn chặn việc làm mới trình duyệt mặc định khi gửi.

Ngoài ra, hãy cung cấp mã để các giá trị trường đầu vào có liên kết hai chiều với các thuộc tính phiên bản dữ liệu Vue 'itemName' và 'itemNumber'.

<biểu mẫu v-on: ="addItem">
  <p>Thêm mục</p>
  <p>
    Tên mục: 
    <loại đầu vào="văn bản" bắt buộc ="tên mục">
  </p>
  <p>
    Bao nhiêu: 
    <loại đầu vào="số" ="số mục">
  </p>
  <button type="submit">Thêm mục</button>
</form>

Bắt đầu bài tập



×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .