終於來到最後一個基礎範例!
沒想到堅持下去也來到ep20了~
總覺得三分鐘熱度的我,能撐到多久呢?
為什麼薪資沒有漲~噗!快來結束這個簡單範例~
最後一個範例,是兩個檔案,引進寫好的TodoItem.vue!
Ex6SimpleComponent.vue
<script setup>
import { ref } from 'vue'
import TodoItem from './TodoItem.vue'
const groceryList = ref([
{ id: 0, text: 'Vegetables' },
{ id: 1, text: 'Cheese' },
{ id: 2, text: 'Whatever else humans are supposed to eat' }
])
</script>
<template>
<p>Example 6:</p>
<ol>
<TodoItem v-for="item in groceryList" :todo="item" :key="item.id"></TodoItem>
</ol>
</template>
<Script>
- import 和 ref:
ref從 Vue 中引入,用於創建響應式變數。TodoItem從./TodoItem.vue中引入,作為待辦事項項目的子組件。
- groceryList:
- 使用
ref創建一個響應式變數groceryList,其初始值是一個包含三個待辦事項物件的陣列,每個物件都有id和text屬性。
- 使用
<Template>
- 有序列表
<ol>:- 使用
<ol>標籤創建一個有序列表。 - 使用
v-for指令遍歷groceryList陣列,對於每個item,創建一個TodoItem組件實例,並將item作為todo屬性傳遞給TodoItem組件。每個TodoItem組件的key屬性設為item.id以保持列表的穩定性。
- 使用
TodoItem.vue
<script setup>
const props = defineProps({
todo: Object
})
</script>
<template>
<li>{{ todo.text }}</li>
</template>
<Script>
defineProps:
- 使用
defineProps定義props,其中todo是一個物件,這個物件將從父組件Ex6SimpleComponent.vue傳遞過來。
<Template>
列表項<li>:- 使用
<li>標籤顯示todo.text,這裡的todo是從父組件傳遞過來的待辦事項物件,顯示該待辦事項的文本內容。
喔喔喔!!!之前文件理頭都看不太懂~原來
defineProps就是定義父組件傳進子組件的物件!
再從子組件看怎麼運用這個物件~
補充 <ol> 與 <li>
<ol> 標籤
<ol> (Ordered List) 標籤用於創建有序列表。列表中的項目會自動生成編號,通常以數字 (1, 2, 3, ...) 顯示。
<li> 標籤
<li> (List Item) 標籤用於定義列表中的每個項目。它可以用於有序列表 (<ol>) 或無序列表 (<ul>)。
<ol>
<li>項目 1</li>
<li>項目 2</li>
<li>項目 3</li>
</ol>
在這個範例中,<li> 標籤包裹每個列表項目,這些項目被自動編號。
完成六個範例!













