搜尋
首頁web前端js教程了解如何使用 props 製作樣式化的相框 Web 元件(學習 Modulo.js - 第 f 部分

?歡迎回來!沒聽懂第 1 部分嗎?不用擔心,您可以從頭開始,也可以直接投入其中!

介紹:PictureFrame 元件

本教學中我們的任務是建立一個相框元件,用於在 Web 應用程式上設定照片樣式。上次我們以一個有點像下面的片段結束。然而,在本教程中,我們更改了“模板”,以顯示河馬的粉紅色/鮭魚色“相框”,其下方有標題。要開始本教程,請將以下內容複製並貼上到新文件中,然後在瀏覽器中開啟:

<template modulo>
    <component name="PictureFrame">
        <template>
            <div style="display: inline-block; border: 10px inset salmon; padding: 10px; margin: 10px; width: 100px; background: pink;">
                <img  src="/static/imghwm/default1.png" data-src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Hippo_walking.jpg/320px-Hippo_walking.jpg" class="lazy"   style="max-width:90%" alt="了解如何使用 props 製作樣式化的相框 Web 元件(學習 Modulo.js - 第 f 部分" >
                <p>Photograph: <em>The Return of the Hippo</em></p>
            </div>
        </template>
    </component>
</template>
<script src="https://unpkg.com/mdu.js"></script>
<x-pictureframe></x-pictureframe>

介紹第 2 部分

Learn how to make a styled picture frame web component with props (Learn Modulo.js - Part f

在本教程中,我們將向純HTML 組件添加Style,並討論Modulo 框架中的第一個核心概念:組件部分,然後最後看看一個更重要的組件部分: 道具.

首先,您可能會注意到上面的程式碼有些混亂。所有的樣式都被塞進一個 style= 屬性中!在編寫 CSS 程式碼時,將所有樣式放入內聯 style= 屬性中通常很難維護。 Modulo 支援「Style」元件部分,讓我們更自然地編寫 CSS 程式碼。什麼是組件?好吧,我們也會談到這一點。首先,讓我們時尚

第 1 步:建立樣式元件

<template>
    <div class="salmon-frame">
        <img  src="/static/imghwm/default1.png" data-src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Hippo_walking.jpg/320px-Hippo_walking.jpg" class="lazy" alt="了解如何使用 props 製作樣式化的相框 Web 元件(學習 Modulo.js - 第 f 部分" >
        <p>Photograph: <em>The Return of the Hippo</em></p>
    </div>
</template>
<style>
    img {
        width: 50px;
    }
    .salmon-frame {
        display: inline-block;
        border: 10px inset salmon;
        padding: 10px;
        margin: 10px;
        width: 100px;
        background: pink;
    }
</style>

好多了!這看起來和行為很像 HTML 中的「Style」標籤,可讓您根據自己的喜好建立類別和選擇器。

第 2 步:設定主機組件本身的樣式

通常,您需要設定 Web 元件本身的樣式(在本例中為 標籤)。我們可以為此使用特殊的 :host 選擇器:

<style>
    :host {
        text-align: center;
    }
    /* ... etc ... */
</style>

零件介紹

Modulo 的核心概念是組件部分。所有組件定義都由一定數量的組件部分組成。因此,組件定義實際上只是組件部分定義的集合。在組件的“底層”,每個組件部件都將發揮不同的作用來為組件的功能做出貢獻。

我們已經學會了兩個最基本的組件:

  1. 模板 - - 模板是您放置您希望組件包含的任意 HTML 程式碼的位置。現在,我們只包含一些不變的 HTML。在下一個教程中,我們將學習如何使用「模板語言」來控制在什麼情況下產生什麼 HTML。

  2. 風格 - - 就像一樣HTML 中的標籤。然而,它有一一重要的區別:包含的樣式將僅限於您的組件。這是因為此處編寫的 CSS 將自動添加前綴,以便它僅適用於您的組件以及模板組件部分生成的任何 HTML。這非常有用:它允許我們為每個組件編寫獨立的 CSS,甚至無需考慮它。保持 CSS 獨立意味著更少的意外互動。

請記住,樣式模板都有很多可配置選項,但對於我們的使用來說,預設值就足夠了。

道具介紹

現在,我們來介紹第三個重要的組件:Props

在上一節中,我們主要專注於定義元件。回想一下,元件定義一次,但可以使用多次。 Props 的目的是在第二步驟中提供更大的靈活性:Props Component Part 定義了每次重複使用元件時可以自訂元件的屬性。

給我們支持!

目前,我們的相框無法重複用於不同的照片或標題。我們不能永遠被河馬追趕! ???

我們希望最終能夠做這樣的事情:

<x-pictureframe image="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Hippo_walking.jpg/320px-Hippo_walking.jpg" caption="Hippopotamus out of water" photographer="Lee R. Berger"></x-pictureframe>

然後,它感覺就像一個「真正的」HTML 標籤——也就是說,可以透過屬性進行配置。 讓我們“剝開層層”,看看如何使用 Props.

來實現這一點

第三步:新增道具

為了讓元件在重複使用時能夠「接收」props,我們必須定義 Props。 Props 定義與先前的定義類似,只不過它們沒有內容,只是一個帶有屬性的開始標記,後面跟著一個結束標記。請參考以下內容:

<props image caption photographer></props>

注意:一個常見的錯誤是忘記包含 Props。您希望元件接收的每個屬性都必須列在 Props 中才能用於下一步。

Step 4: Using Props in Template

Now, we'll get our first sneak peak at the true power of Templates: Adding in data and values into your HTML. You can use the following syntax to get your "props" and inject them into the generated HTML:

<div class="salmon-frame">
    <img  src="/static/imghwm/default1.png" data-src="https://unpkg.com/mdu.js" class="lazy" alt="了解如何使用 props 製作樣式化的相框 Web 元件(學習 Modulo.js - 第 f 部分" >
    <p>Photograph: <em>{{ props.caption }}</em></p>
    <p>Photographer: <em>{{ props.photographer }}</em></p>
</div>

Note the {{ and }}: This the templating syntax that indicates where the "props" values get inserted.

- Complete Example

Combining it all, we get the following results. Note how our custom Web Component can be re-used with different attributes:


<script></script>

Learn Modulo.js: Part 2

Style and Props

<x-pictureframe image="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Hippo_walking.jpg/320px-Hippo_walking.jpg" caption="Hippopotamus out of water" photographer="Lee R. Berger"></x-pictureframe>

Conclusion

That's all for Part 2! Be sure to follow to catch the rest, and, as always, feel free to ask questions or suggestions in the comments.

以上是了解如何使用 props 製作樣式化的相框 Web 元件(學習 Modulo.js - 第 f 部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python vs. JavaScript:選擇合適的工具Python vs. JavaScript:選擇合適的工具May 08, 2025 am 12:10 AM

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript:了解每個的優勢Python和JavaScript:了解每個的優勢May 06, 2025 am 12:15 AM

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

JavaScript的核心:它是在C還是C上構建的?JavaScript的核心:它是在C還是C上構建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

Python vs. JavaScript:您應該學到哪種語言?Python vs. JavaScript:您應該學到哪種語言?May 03, 2025 am 12:10 AM

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架:為現代網絡開發提供動力JavaScript框架:為現代網絡開發提供動力May 02, 2025 am 12:04 AM

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

JavaScript,C和瀏覽器之間的關係JavaScript,C和瀏覽器之間的關係May 01, 2025 am 12:06 AM

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。