先把一張卡片的畫面責任封裝起來,讓父層只負責資料清單。
現在要做:請在 main.js 的「ServiceCard 宣告(createApp 之前)」位置完成:在 createApp 之前建立 ServiceCard,宣告 service props 並顯示服務資料
貼上位置:main.js:ServiceCard 宣告(createApp 之前) 區塊,先保留同一檔案的其他內容。
第一層|提示:先確認 ServiceCard 宣告、app.component 與 app.mount 的先後順序,再對照 props.service。
第二層|查看關鍵行
const ServiceCard = {
props: { service: { type: Object, required: true } },
};第三層|查看完整答案(最後才開)
const ServiceCard = {
props: {
service: { type: Object, required: true },
},
template: `<article class="service-card">
<h2>{{ service.name }}</h2>
<p>{{ service.summary }}</p>
</article>`,
};預期結果:元件在 app.component 註冊後可以接收父層傳入的 service,並顯示 name 與 summary。
驗收證據:main.js 的元件宣告位於 createApp 外;畫面出現兩張卡片且文字來自 props。
卡住時先看這裡
常見錯誤:把 ServiceCard 宣告在 setup 內,卻在外層註冊;或讓子元件讀不存在的全域 service。
第一個檢查:先確認 ServiceCard 宣告、app.component 與 app.mount 的先後順序,再對照 props.service。