這篇文章帶給大家的內容是關於React-JSX中如何實現Class與Style的動態綁定(附實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
摘要:操作元素的class 清單和內聯樣式是資料綁定的一個常見需求,頻繁操作dom元素會降低javascript效能,為了實現高效能js,動態綁定class和style是高素養程式設計師的必選。本文以React-JSX語法為基礎,結合其它框架的實作方法,介紹如何實作ClassName 與 Style 的動態綁定。
註:本文實例都已經過驗證,錯誤的請廣大道友批評指正
綁定HTML Class
物件語法
我們可以傳給className 一個對象,以動態地切換class:
註:使用類似vue、小程式等物件語法是不支援的
錯誤範例:
render(){ return <p>hello world</p> }
可以實現的語法如下:
1、使用邏輯運算子
css檔案
.box-color { color:red; }
js檔案
render(){ return <p>hello world</p> }
2、使用三元運算子
#css檔案
.box-show { display: block; } .box-hide { display: none; }
render(){ return <p>hello world</p> }
3、使用函數
綁定的資料物件也不必內聯定義在模板裡:可以定義一個函數,類似vue中的computed鉤子函數
js檔案
getIsError() { return this.state.isError ? 'box-color' : ''; } render(){ return <p>hello world</p> }
註:下面這種物件變數寫法是不支援的,也不會報錯,控制台className顯示為[object object],無效。
const classObj = { 'box-show': this.state.isShow, 'box-color': this.state.isError } render(){ return <p>hello world</p> }
一般在專案邏輯比較複雜的場景中使用函數綁定方法,使用過多會使得視圖層和邏輯層交雜混亂,難以閱讀和維護,建議使用邏輯運算子和三元運算符方法動態綁定Class。
陣列語法
React-JSX語法不支援className陣列語法,嘗試範例:
css檔案
.box-hide { display: none; } .box-color { color:red; }
js檔案
this.state = {isShow: false} render(){ return <p>hello world</p> }
控制台顯示結果(無效,中間多了個逗號):
<p>hello world</p>
註:既然不支援陣列語法,你只能將「box-color」中的樣式重複使用到「box-hide 」中,使用三元運算子來表示,這樣無形中增加了css代碼量。
綁定內聯樣式
物件語法
style物件語法比clasName物件更直觀,處理的功能更簡單,邏輯運算子方法和函數綁定方法可以參考className的實現,以下只介紹三元運算子的使用:
三元運算子
類似Vue的vue-if、微信小程式的wx-if指令,可以用style三元運算子動態實作
js檔案
render(){ return <p>hello world</p> }
陣列語法
#React-JSX語法也不支援style陣列語法,嘗試範例:
# js檔案
render(){ return <p></p> }
控制台顯示結果(無效):
<p></p>
總之,為了高品質的完成專案需求,應付越來越複雜的業務場景,那種大量操作dom元素,隨意命名一個樣式變量,然後綁定到class和style的做法是不提倡的。
相關文章推薦:
以上是React-JSX中如何實作Class與Style的動態綁定(附實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

HTML是構建網頁結構的基石。 1.HTML定義內容結構和語義,使用、、等標籤。 2.提供語義化標記,如、、等,提升SEO效果。 3.通過標籤實現用戶交互,需注意表單驗證。 4.使用、等高級元素結合JavaScript實現動態效果。 5.常見錯誤包括標籤未閉合和屬性值未加引號,需使用驗證工具。 6.優化策略包括減少HTTP請求、壓縮HTML、使用語義化標籤等。

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版