GIỚI THIỆU
CĂN BẢN
NÂNG CAO
VUEJS 2X CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Tạo một danh sách các thành phần Vue và hiển thị chúng trên trang web bằng VueJS 2.

Đây là một bài tập về VueJS 2, mình sẽ tạo ra một trang web hiển thị một danh sách các thành phần Vue. Mình sẽ sử dụng khả năng của VueJS để tạo một array chứa dữ liệu của các thành phần và sử dụng vòng lặp để hiển thị chúng trên trang. Hãy bắt đầu với việc tạo các thành phần và cách ta có thể hiển thị chúng một cách đơn giản và linh hoạt.

Tạo cấu trúc thư mục và các flie

z5050394728784 7e71eaa61ef2502f537e97283f695147 jpg

File main.js

import Vue from 'vue';
import App from './App.vue';

new Vue({
  render: h => h(App),
}).$mount('#app');

File App.vue

<template>
  <div>
    <h1>Danh sách các thành phần Vue</h1>
    <ul class="component-list">
      <!-- Sử dụng v-for để hiển thị danh sách các thành phần -->
      <li v-for="component in components" :key="component.id" class="component-item">
        <component :is="component.name"></component>
      </li>
    </ul>
  </div>
</template>

<script>
// Import các thành phần Vue để hiển thị
import ComponentA from './components/ComponentA.vue';
import ComponentB from './components/ComponentB.vue';
import ComponentC from './components/ComponentC.vue';

export default {
  components: {
    ComponentA,
    ComponentB,
    ComponentC,
  },
  data() {
    return {
      // Một array chứa dữ liệu cho các thành phần
      components: [
        { id: 1, name: 'ComponentA' },
        { id: 2, name: 'ComponentB' },
        { id: 3, name: 'ComponentC' },
      ],
    };
  },
};
</script>

<style>
/* CSS cho component */
.component-list {
  list-style: none;
  padding: 0;
}

.component-item {
  margin-bottom: 10px;
  border: 1px solid #ccc;
  padding: 10px;
}
</style>

Giải thích:

  • Trong phần template (<template>), có một phần tử ul chứa danh sách các thành phần, mỗi thành phần được đại diện bằng một phần tử li. Directive v-for được sử dụng để lặp qua mảng components và tạo một li cho mỗi phần tử trong mảng.
  • Directive v-bind với :is được sử dụng để gán tên của component cần hiển thị. Khi lặp qua mảng components, mỗi phần tử sẽ có thuộc tính name tương ứng với tên của một component (ComponentA, ComponentB, ComponentC). Điều này sẽ khiến component được render phụ thuộc vào giá trị của component.name.
  • Trong phần script (<script>), các component ComponentA, ComponentB, ComponentC được import và khai báo trong phần components của Vue, điều này cho phép Vue biết rằng chúng sẽ được sử dụng trong template.
  • Phần data chứa một mảng components với các đối tượng có các thuộc tính id và name. Các id có thể được sử dụng để xác định mỗi component name chứa tên của từng component.

File components/ComponentA.vue

<template>
  <div class="component-a">
    <h2>Đây là Component A</h2>
    <p>{{ content }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      content: "Đây là nội dung cho Component A.",
    };
  },
  // Các logic khác của component có thể được thêm vào đây
};
</script>

<style scoped>
/* CSS riêng cho component này */
.component-a {
  border: 1px solid #ccc;
  padding: 10px;
  margin: 10px 0;
}
.component-a h2 {
  color: green;
}
</style>

File components/ComponentB.vue

<template>
  <div class="component-b">
    <h2>Đây là Component B</h2>
    <p>{{ content }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      content: "Đây là nội dung cho Component B.",
    };
  },
  // Các logic khác của component có thể được thêm vào đây
};
</script>

<style scoped>
/* CSS riêng cho component này */
.component-b {
  border: 1px solid #ccc;
  padding: 10px;
  margin: 10px 0;
}
.component-b h2 {
  color: red;
}
</style>

File components/ComponentC.vue

<template>
  <div class="component-c">
    <h2>Đây là Component C</h2>
    <p>{{ content }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      content: "Đây là nội dung cho Component C.",
    };
  },
  // Các logic của component có thể được thêm vào đây
};
</script>

<style scoped>
/* CSS riêng cho component này */
.component-c {
  border: 1px solid #ccc;
  padding: 10px;
  margin: 10px 0;
}
.component-c h2 {
  color: blue;
}
</style>

File index.html

<!DOCTYPE html>
<html>
<head>
  <title>Danh sách các thành phần Vue</title>
  <!-- Include VueJS -->
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <!-- Hiển thị component App.vue -->
    <app></app>
  </div>

  <script src="main.js"></script>
</body>
</html>

Trong đoạn mã này, mình đã tạo ba thành phần Vue (ComponentA, ComponentB, ComponentC) và sử dụng vòng lặp v-for để hiển thị danh sách các thành phần trên trang web. Bạn cần tạo các file ComponentA.vue, ComponentB.vue, và ComponentC.vue trong thư mục components và định nghĩa các component tương ứng cho từng file.

z5050397078539 122e667c02c30b2e7bee81e04049c610 jpg

Dưới đây là một cách tuyệt vời để tìm hiểu VueJS 2 trong việc quản lý và hiển thị danh sách các thành phần trên trang web. Mình đã thành công trong việc tạo một danh sách các thành phần Vue và hiển thị chúng một cách linh hoạt thông qua việc sử dụng vòng lặp v-for. Nhờ có của Vue, mình có thể dễ dàng quản lý và hiển thị dữ liệu theo cách linh hoạt và mạnh mẽ. Tiếp tục tìm hiểu thêm về VueJS 2 và tận dụng nó trong việc xây dựng các ứng dụng web phong phú và linh hoạt!

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Bài tập VueJS 2: Sử dụng Axios hoặc Fetch API trong VueJS 2

Bài tập VueJS 2: Sử dụng Axios hoặc Fetch API trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Xử lý sự kiện trong VueJS 2

Bài tập VueJS 2: Xử lý sự kiện trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

Các quy tắc trong VueJS 2

Các quy tắc trong VueJS 2

Tạo component và binding data trong VueJS 2

Tạo component và binding data trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng v-for trong VueJS 2

Sử dụng v-for trong VueJS 2

10 best practices trong VueJS 2

10 best practices trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng methods trong VueJS 2

Sử dụng methods trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Xử lý Custom Events trong VueJS 2

Xử lý Custom Events trong VueJS 2

Ref và Reactive trong VueJS 2

Ref và Reactive trong VueJS 2

Top