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 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

Thành phần Vue

Các thành phần trong Vue cho phép chúng ta phân tách trang web của mình thành các phần nhỏ hơn để dễ làm việc.

Chúng ta có thể làm việc với thành phần Vue tách biệt với phần còn lại của trang web, với nội dung và logic riêng của nó.

Một trang web thường bao gồm nhiều thành phần Vue.

Thành phần là gì?

Các thành phần là các đoạn mã độc lập và có thể tái sử dụng, đóng gói một phần cụ thể của giao diện người dùng để chúng ta có thể tạo ra các ứng dụng Vue có khả năng mở rộng và dễ bảo trì hơn.

Chúng ta có thể tự tạo các thành phần trong Vue hoặc sử dụng các thành phần tích hợp mà chúng ta sẽ tìm hiểu sau, như <Teleport> hoặc <KeepAlive> . Ở đây chúng tôi sẽ tập trung vào các thành phần chúng tôi tự làm.


Tạo một thành phần

Các thành phần trong Vue là một công cụ rất mạnh mẽ vì nó cho phép trang web của chúng ta có khả năng mở rộng cao hơn và các dự án lớn hơn trở nên dễ xử lý hơn.

Hãy tạo một thành phần và thêm nó vào dự án của chúng ta.

  1. Tạo một thư mục mới components bên trong thư mục src .

  2. Bên trong thư mục components , tạo một tệp mới FoodItem.vue . Người ta thường đặt tên các thành phần theo quy ước đặt tên PascalCase, không có dấu cách và tất cả các từ mới đều bắt đầu bằng chữ in hoa, cũng là từ đầu tiên.

  3. Đảm bảo tệp FoodItem.vue trông như thế này:

Mã bên trong thành phần FoodItem.vue :

 <template>
  <div>
    <h2>{{ name }}</h2>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: 'Apples',
      message: 'I like apples'
    }
  }
};
</script>

<style></style>

Như bạn có thể thấy trong ví dụ trên, các thành phần cũng bao gồm các thẻ <template> , <script><style> , giống như tệp App.vue chính của chúng ta.


Thêm thành phần

Lưu ý rằng thẻ <script> trong ví dụ trên bắt đầu bằng export default . Điều này có nghĩa là đối tượng chứa các thuộc tính dữ liệu có thể được nhận hoặc được nhập vào một tệp khác. Chúng tôi sẽ sử dụng điều này để triển khai thành phần FoodItem.vue vào dự án hiện tại của mình bằng cách nhập nó bằng tệp main.js

Đầu tiên, viết lại dòng cuối cùng thành hai dòng trong tệp main.js ban đầu của bạn:

main.js :

 import { createApp } from 'vue'

import App from './App.vue'

const app = createApp(App)
app.mount('#app')

Bây giờ, hãy thêm thành phần FoodItem.vue bằng cách chèn dòng 4 và 7 vào tệp main.js của bạn:

main.js :

 import { createApp } from 'vue'

import App from './App.vue'
import FoodItem from './components/FoodItem.vue'

const app = createApp(App)
app.component('food-item', FoodItem)
app.mount('#app')

Ở dòng 7, thành phần này được thêm vào để chúng ta có thể sử dụng nó làm thẻ tùy chỉnh <food-item/> bên trong thẻ <template> trong tệp App.vue như thế này:

App.vue :

 <template>
  <h1>Food</h1>
  <food-item/>
  <food-item/>
  <food-item/>
</template>

<script></script>

<style></style>

Và hãy thêm một số kiểu dáng bên trong thẻ <style> trong tệp App.vue . Đảm bảo máy chủ phát triển đang chạy và kiểm tra kết quả.

Ví dụ

App.vue :

 <template>
  <h1>Food</h1>
  <food-item/>
  <food-item/>
  <food-item/>
</template>

<script></script>

<style>
  #app > div {
    border: dashed black 1px;
    display: inline-block;
    margin: 10px;
    padding: 10px;
    background-color: lightgreen;
  }
</style>
Chạy Ví dụ »

Chế độ phát triển: Khi làm việc với các dự án Vue của bạn, sẽ rất hữu ích nếu dự án của bạn luôn ở chế độ phát triển bằng cách chạy dòng mã sau trong terminal:

npm run dev

Thành phần riêng lẻ

Một thuộc tính rất hữu ích và mạnh mẽ khi làm việc với các thành phần trong Vue là chúng ta có thể làm cho chúng hoạt động riêng lẻ mà không cần phải đánh dấu các thành phần bằng ID duy nhất như chúng ta phải làm với JavaScript đơn giản. Vue tự động xử lý từng thành phần riêng lẻ.

Hãy làm cho các phần tử <div> được tính khi chúng ta nhấp vào chúng.

Điều duy nhất được thêm vào tệp ứng dụng chính App.vue của chúng tôi là trong CSS để con trỏ trông giống như một bàn tay đang trỏ trong khi di chuột để ngụ ý rằng có một số loại chức năng nhấp chuột.

Mã CSS được thêm vào thẻ <style> trong App.vue :

 #app > div:hover {
  cursor: pointer;
}

Trong tệp thành phần FoodItem.vue chúng ta phải thêm thuộc tính dữ liệu count , trình xử lý lượt nhấp vào phần tử <div> , một phương thức để chạy khi lượt nhấp xảy ra để tăng bộ đếm và phép nội suy văn bản {{}} để hiển thị số lượng.

Ví dụ

FoodItem.vue :

 <template>
  <div v-on:click="countClicks">
    <h2>{{ name }}</h2>  
    <p>{{ message }}</p>
    <p id="red">You have clicked me {{ clicks }} times.</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: 'Apples',
      message: 'I like apples',
      clicks: 0
    }
  },
  methods: {
    countClicks() {
      this.clicks++;
    }
  }
}
</script>

<style>
  #red {
    font-weight: bold ;
    color: rgb(144, 12, 12);
  }
</style>
Chạy Ví dụ »

Chúng tôi không phải xác định ID duy nhất hoặc thực hiện thêm bất kỳ công việc nào để Vue xử lý việc đếm riêng cho từng phần tử <div> , Vue chỉ tự động thực hiện việc này.

Nhưng ngoại trừ các giá trị bộ đếm khác nhau thì nội dung của phần tử <div> vẫn giống nhau. Trong trang tiếp theo, chúng ta sẽ tìm hiểu thêm về các thành phần để có thể sử dụng các thành phần theo cách hợp lý hơn. Ví dụ: sẽ hợp lý hơn nếu hiển thị các loại thực phẩm khác nhau trong mỗi phần tử <div> .


Bài tập Vue

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

Bài tập:

Dòng bên dưới trong main.js thêm một thành phần vào dự án Vue của chúng tôi:

app.component('fish-type', FishType)

Làm cách nào chúng tôi có thể thêm thành phần này vào App.vue?

<mẫu>
  <h1>Cá</h1>
  
</template>

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 .