EP20 - ex6. Simple Component

更新於 2024/09/28閱讀時間約 1 分鐘
終於來到最後一個基礎範例!
沒想到堅持下去也來到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,其初始值是一個包含三個待辦事項物件的陣列,每個物件都有 idtext 屬性。

<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> 標籤包裹每個列表項目,這些項目被自動編號。

完成六個範例!

raw-image
raw-image


avatar-img
2會員
71內容數
分享生活趣事~
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
卡關的人生 的其他內容
在這個範例中,我們展示了如何使用 Vue 的 v-model 來實現各種表單元件的雙向綁定。範例包括文字輸入框、單選框、多選框、單選按鈕、下拉選單和多選下拉選單。使用 ref 創建響應式變數,並在 template 中使用 v-model 進行雙向綁定。這使得表單元件能夠即時反映和更新數據。
這個範例包含六個基礎範例,接下來的實用範例將會更有趣。第四個範例關於條件與迴圈,實作起來也不難。在介紹這個範例之前,注意到如果組件的 <style> 標籤中缺少 scoped 屬性,樣式會全局生效,影響到其他組件的按鈕樣式。因此,請確保每個組件的樣式都加上 scoped。
範例中,message 用於顯示動態標題,isRed 控制段落顏色的切換,color 用於設定文本顏色。透過點擊事件,使用者可以切換 isRed 和 color 的值。具體來說,當滑鼠懸停在 <span> 上時,會顯示 "Hello World!" 的標題;點擊段落則會改變其顏色。
這次可以將範例內容轉移到components資料夾中,並在App.vue中引用它們。在App.vue中使用import引入其他組件。新範例中定義了兩個函數:一個用於反轉字串,另一個用於彈出警告框。透過按鈕點擊可觸發這些功能。這些範例簡單易懂,實作會比閱讀文件更有效率!
透過 npm run dev 啟動開發伺服器,並可使用 VSCode 的簡單瀏覽器即時預覽。開始實作一個簡單的 "Hello World" 範例,透過 <script setup> 簡化元件定義,並理解響應式變數的運作。實作後能加深對 Vue 的理解,實踐是學習的最佳方式。
組件組成一棵樹狀結構,類似於嵌套的 HTML 元素,但 Vue 提供了自定義內容和邏輯的封裝。通常我們會在專用的 .vue 文件中定義組件,並使用 <script setup> 來輕鬆管理狀態和事件。組件可以重複使用,並透過 props 傳遞數據,使用插槽實現內容分發。
在這個範例中,我們展示了如何使用 Vue 的 v-model 來實現各種表單元件的雙向綁定。範例包括文字輸入框、單選框、多選框、單選按鈕、下拉選單和多選下拉選單。使用 ref 創建響應式變數,並在 template 中使用 v-model 進行雙向綁定。這使得表單元件能夠即時反映和更新數據。
這個範例包含六個基礎範例,接下來的實用範例將會更有趣。第四個範例關於條件與迴圈,實作起來也不難。在介紹這個範例之前,注意到如果組件的 <style> 標籤中缺少 scoped 屬性,樣式會全局生效,影響到其他組件的按鈕樣式。因此,請確保每個組件的樣式都加上 scoped。
範例中,message 用於顯示動態標題,isRed 控制段落顏色的切換,color 用於設定文本顏色。透過點擊事件,使用者可以切換 isRed 和 color 的值。具體來說,當滑鼠懸停在 <span> 上時,會顯示 "Hello World!" 的標題;點擊段落則會改變其顏色。
這次可以將範例內容轉移到components資料夾中,並在App.vue中引用它們。在App.vue中使用import引入其他組件。新範例中定義了兩個函數:一個用於反轉字串,另一個用於彈出警告框。透過按鈕點擊可觸發這些功能。這些範例簡單易懂,實作會比閱讀文件更有效率!
透過 npm run dev 啟動開發伺服器,並可使用 VSCode 的簡單瀏覽器即時預覽。開始實作一個簡單的 "Hello World" 範例,透過 <script setup> 簡化元件定義,並理解響應式變數的運作。實作後能加深對 Vue 的理解,實踐是學習的最佳方式。
組件組成一棵樹狀結構,類似於嵌套的 HTML 元素,但 Vue 提供了自定義內容和邏輯的封裝。通常我們會在專用的 .vue 文件中定義組件,並使用 <script setup> 來輕鬆管理狀態和事件。組件可以重複使用,並透過 props 傳遞數據,使用插槽實現內容分發。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
各位使用 Vue.js 開發的小夥伴們,你們都怎麼實作父子層組件資料的雙向綁定呢?如果你還在寫 prop + emit 的話,不妨進來看看吧。
Thumbnail
Quasar Dialog 的 Invoking custom component 很好用,但是有些困擾的地方,一起來看看有甚麼辦法吧。
Thumbnail
切換頁面卡卡有很多種原因,這裡舉的例子只針對元件太大的情境。 除了想辦法拆分外,還有一個方法就是利用 Vue 的 Async Component。
Thumbnail
一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
Thumbnail
前言 從零開始構建一個 DateTimePicker 可能看起來令人畏懼,但試想一下你將獲得的靈活性和控制力。在這個系列中,我們將逐步揭開構建過程的神秘面紗,讓您能夠創建一個完全符合需求的自定義 DateTimePicker。 本文章,屬於付費系列的文章,這篇文章,我會希望讀者可以得到的
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找
Thumbnail
我們在實作中,難免會遇到在不同組件中,卻有需求相同的資料格式,因此 mixins 可以達到我們的需求,除了 data 以外也包含了 methods 可以共用,舉例來說,學生資料可能會在,班級跟社團內被使用,當我們要撰寫元件時,就可以省略多餘的 data 定義。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
各位使用 Vue.js 開發的小夥伴們,你們都怎麼實作父子層組件資料的雙向綁定呢?如果你還在寫 prop + emit 的話,不妨進來看看吧。
Thumbnail
Quasar Dialog 的 Invoking custom component 很好用,但是有些困擾的地方,一起來看看有甚麼辦法吧。
Thumbnail
切換頁面卡卡有很多種原因,這裡舉的例子只針對元件太大的情境。 除了想辦法拆分外,還有一個方法就是利用 Vue 的 Async Component。
Thumbnail
一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
Thumbnail
前言 從零開始構建一個 DateTimePicker 可能看起來令人畏懼,但試想一下你將獲得的靈活性和控制力。在這個系列中,我們將逐步揭開構建過程的神秘面紗,讓您能夠創建一個完全符合需求的自定義 DateTimePicker。 本文章,屬於付費系列的文章,這篇文章,我會希望讀者可以得到的
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找
Thumbnail
我們在實作中,難免會遇到在不同組件中,卻有需求相同的資料格式,因此 mixins 可以達到我們的需求,除了 data 以外也包含了 methods 可以共用,舉例來說,學生資料可能會在,班級跟社團內被使用,當我們要撰寫元件時,就可以省略多餘的 data 定義。