React-JSX語法

1、React和Vue的區別

(1)設計理念:react是一個聲明式UI庫,強調的是函數式編程,學習難度較高,vue是漸進式框架,學習難度較低

(2)模板語法:react使用的是JSX語法,邏輯和視圖混合編寫,vue使用的是HTML模板語法,邏輯和視圖分離;

(3)數據流:vue通過v-model可以實現雙向數據綁定,react是單向數據流,必須要手動調用setState或Hooks更新;(必須要將其定義為受控組件,在input框中綁定value={this.state.value},并給其綁定一個 onChange={this.handleChange}函數,監聽input輸入框的變化,通過handleChange(event) {

this.setState({value: event.target.value});}從而去更新state中的屬性);

(4) ?生態系統:react擁有龐大的生態系統和第三方庫,適合復雜場景的開發,Vue是官方提供的全家桶,適合快速開發中小項目;

2、JSX簡介

  • 遇到 < 開頭的代碼, 以標簽的語法解析: html 同名標簽轉換為 html 同名元素, 其它標簽需要特別解析 ;
  • 遇到以 { 開頭的代碼,以 JS 的語法解析: 標簽中的 js 代碼必須用{ }包含;
  • 對于 label 標簽的 for 屬性,使用 htmlFor 標簽代替,標簽的class屬性,使用className代替;

3、樣式引入

行內樣式:可以使用style屬性定義樣式,使用{}表示js代碼,內部的樣式是一個json對象格式,需要再用{}括起來

<div style={{color:"red", fontSize: 30}}></div>

內聯樣式:React 會在指定元素數字后自動添加 px

let mystyle = {color: "blue",fontSize: 30,
}
return(<div style={mystyle}>水滸傳</div>
)

4、圖片引入

(1)分離引入方式

import boy from './assets/img/pic3.png'
<img alt="" src={boy} /> 

(2)通過require引入

<img alt="" src={require('./assets/img/pic4.png')} />

(3)引入線上地址

<img alt="" src="https://dss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1807710913,34060765&fm=26&gp=0.jpg" />

5、條件渲染

(1)三目運算符:在 JSX 內部不能使用 if else 語句,但可以使用三元運算表達式來替代

let flag = true;
<div>{flag ? "show" : "hidden"}</div>
<div>{flag ? <span>立即注冊</span> : ''}</div>

(2)使用&&來去掉三目運算符的否則

let flag = true;
<div>{flag && <span>條件渲染</span>}</div>

(3)復雜條件渲染

const list = [{ name: '張三', age: 18, type: 0 },{ name: '李四', age: 20, type: 1 },{ name: '王五', age: 32, type: 2 },
]function getArticleTem(type) {if (type === 0) {return <div>無圖</div>} else if (type === 1) {return <div>單圖</div>} else if (type === 2) {return <div>雙圖</div>}
}function App() {return (<div>{ list.map((item, index) => <div key={index}>{getArticleTem(item.type)}</div> )}  </div>
}

6、列表渲染

const list = [{ name: '張三', age: 18, type: 0 },{ name: '李四', age: 20, type: 1 },{ name: '王五', age: 32, type: 2 },
]function App() {return (<div>{ list.map((item, index) => <div key={index}>{ item.name }</div> )}  </div>
}

7、事件綁定

function handleClick(e) {console.log(e);
}function App() {return (<div>{ list.map((item, index) => <div key={index} onClick={handleClick}>{ item.name }</div> )}  </div>
}

????????自定義傳參:事件綁定的位置改為箭頭函數寫法,不能直接在后面加參數調用


function App() {return (<div>{ list.map((item, index) => <div key={index} onClick={() => handleClick(item)}>{ item.name }</div> )}  </div>
}

????????同時傳遞事件對象和自定義參數:


function App() {return (<div>{ list.map((item, index) => <div key={index} onClick={(e) => handleClick(item, e)}>{ item.name }</div> )}  </div>
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80417.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RocketMQ 主題與隊列的協同作用解析(既然隊列存儲在不同的集群中,那要主題有什么用呢?)---管理命令、配置安裝

學習之前呢需要會使用linux的基礎命令 一.RocketMQ 主題與隊列的協同作用解析 在 RocketMQ 中&#xff0c;?主題&#xff08;Topic&#xff09;?與?隊列&#xff08;Queue&#xff09;?的協同設計實現了消息系統的邏輯抽象與物理存儲分離。雖然隊列實際存儲在不同集群的 B…

三菱FX PLC頻率采集

基于高速計數器&#xff0c;計算從X點輸入方波個數&#xff0c;定時提取計數器值&#xff0c;換算得到頻率。直接通過定時器數值判斷來實現定時計數的精度不高&#xff0c;提高精度需要考慮定時中斷方式。 初始化寄存器&#xff0c;通過M8235&#xff0c;M8236復位來選擇C235&a…

一種專用車輛智能配電模塊的設計解析:技術革新與未來展望

關鍵詞&#xff1a;智能配電模塊、STM32、CAN總線、電子開關、新能源汽車 引言&#xff1a;傳統配電系統的痛點與智能化轉型 傳統配電系統依賴繼電器和保險絲&#xff0c;存在體積大、壽命短、智能化低等缺陷&#xff08;如圖1&#xff09;。而新能源汽車和無人駕駛技術對配電…

python——異常

1、定義 異常是在代碼執行過程中發生的&#xff0c;它會影響到程序的正常運行。python程序不會自動來進行異常處理。python中常見異常父類&#xff1a;Exception。 2、常見異常 TypeError&#xff1a;類型錯誤異常。ValueError&#xff1a;值的異常。KeyError&#xff1a;鍵…

深入淺出Sentinel:分布式系統的流量防衛兵

引言 在當今的微服務架構和分布式系統中&#xff0c;服務間的依賴關系錯綜復雜&#xff0c;一個服務的故障可能會像多米諾骨牌一樣引發整個系統的崩潰。如何有效地保護系統免受突發流量、不穩定依賴服務的影響&#xff0c;成為每個架構師和開發者必須面對的挑戰。今天&#xf…

leetcode0106. 從中序與后序遍歷序列構造二叉樹-medium

1 題目&#xff1a;從中序與后序遍歷序列構造二叉樹 官方標定難度&#xff1a;中 給定兩個整數數組 inorder 和 postorder &#xff0c;其中 inorder 是二叉樹的中序遍歷&#xff0c; postorder 是同一棵樹的后序遍歷&#xff0c;請你構造并返回這顆 二叉樹 。 示例 1: 輸入…

【Pandas】pandas DataFrame rsub

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于執行 DataFrame 與另一個對象&#xff08;如 DataFrame、Series 或標量&#xff09;的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于執行 DataFrame 與另一個對象&…

【信息系統項目管理師】高分論文:論人力資源管理與成本管理(醫院信息系統)

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 論文一、規劃人力資源管理二、組建項目團隊三、建設項目團隊四、管理項目團隊論文 一個完善的醫院信息系統通常由上百個子系統構成,而這些系統隨著醫院發展需求逐步建設的,他們來源于不同廠家,基于不同的技…

【python】如何將python程序封裝為cpython的庫

python程序在發布時&#xff0c;往往會打包為cpython的庫&#xff0c;并且根據應用服務器的不同架構&#xff08;x86/aarch64&#xff09;&#xff0c;以及python的不同版本&#xff0c;封裝的輸出類型也是非常多。本文介紹不同架構指定python下的代碼打包方式&#xff1a; 首…

Android 14 修改側滑手勢動畫效果

涉及關鍵類 SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt 修改如下&#xff1a; 一&#xff0c;覆蓋系統的默認手勢效果 SystemUI/src/com/andro…

RHEL與CentOS:從同源到分流的開源操作系統演進

RHEL與CentOS&#xff1a;從同源到分流的開源操作系統演進 一、核心關系&#xff1a;源代碼的重構與社區化 RHEL&#xff08;Red Hat Enterprise Linux&#xff09;與CentOS&#xff08;Community ENTerprise Operating System&#xff09;的關系可以概括為“同源異構”。RHE…

EFISH-SBC-RK3588 —— 厘米級定位 × 旗艦算力 × 工業級可靠?

一、核心參數速覽? ?類別? ?技術規格? ?處理器? RK3588 八核&#xff08;4Cortex-A762.4GHz 4Cortex-A551.8GHz&#xff09; Mali-G610 GPU 6 TOPS NPU ?定位能力? 雙天線差分 GNSS&#xff08;GPS/北斗/GLONASS/Galileo&#xff09;&#xff0c;支持 RTK 動態…

【Unity 與c++通信】Unity與c++通信注意事項,參數傳遞

一、在Unity中使用c代碼 Unity想調用C代碼&#xff0c;則需要c開發人員打包成so庫。 在Unity中通過DllImport&#xff0c;和dll一樣調用。 需要注意的點&#xff1a; C代碼需要extern"C"來封裝成dll 因為unity默認使用c語言調用外部接口&#xff0c;會對c代碼進行命…

DeepSeek+Mermaid:輕松實現可視化圖表自動化生成(附實戰演練)

目錄 一、引言&#xff1a;AI 與圖表的夢幻聯動二、DeepSeek&#xff1a;大語言模型新星崛起2.1 DeepSeek 全面剖析2.2 多場景應用示例2.2.1 文本生成2.2.2 代碼編寫 三、Mermaid&#xff1a;代碼式圖表繪制專家3.1 Mermaid 基礎探秘3.2 語法與圖表類型詳解3.2.1 流程圖&#x…

霍格軟件測試-JMeter高級性能測試一期

課程大小&#xff1a;32.2G 課程下載&#xff1a;https://download.csdn.net/download/m0_66047725/90631395 更多資源下載&#xff1a;關注我 當下BAT、TMD等互聯網一線企業已幾乎不再招募傳統測試工程師&#xff0c;而只招測試開發工程師&#xff01;在軟件測試技術棧迭代…

【Python數據庫編程實戰】從SQL到ORM的完整指南

目錄 前言技術背景與價值當前技術痛點解決方案概述目標讀者說明 一、技術原理剖析核心概念圖解核心作用講解關鍵技術模塊說明技術選型對比 二、實戰演示環境配置要求核心代碼實現案例1&#xff1a;SQLite基礎操作案例2&#xff1a;MySQL連接池案例3&#xff1a;SQLAlchemy ORM …

第1講|R語言繪圖體系總覽(Base、ggplot2、ComplexHeatmap等)

目錄 第1講|R語言繪圖體系總覽 ? 引言:為什么R繪圖如此重要? ?? 1. Base繪圖系統 ?? 2. ggplot2生態系統 ?? 3. ComplexHeatmap超級熱圖系統 ?? 4. 其他特色繪圖庫(快速了解) ?? 小結一句話 ?? 預告下一講 第1講|R語言繪圖體系總覽 (Base、ggplot…

銀行卡歸屬地查詢的快速入門:API接口性能與安全兼備的高效實現

在金融和支付領域&#xff0c;獲取銀行卡的歸屬信息是一個常見的需求。**萬維易源提供的“銀行卡歸屬信息查詢”API為開發者和企業提供了高效、便捷的銀行卡信息查詢服務&#xff0c;可以通過簡單的接口調用獲取銀行卡的歸屬地、銀行名稱、電話號碼、網址、卡種、銀聯Luhn效驗和…

如何把兩個視頻合并成一個視頻?無需視頻編輯器即可搞定視頻合并

在日常生活中&#xff0c;我們經常需要將多個視頻片段合并成一個完整的視頻&#xff0c;例如制作旅行記錄、剪輯教學視頻或拼接短視頻素材。簡鹿視頻格式轉換器是一款功能強大的工具&#xff0c;不僅可以進行視頻格式轉換&#xff0c;還支持視頻合并功能。以下是使用簡鹿視頻格…

Android-KeyStore安全的存儲系統

? 在 Android 中&#xff0c;AndroidKeyStore 是一個安全的存儲系統&#xff0c;用于存儲加密密鑰。它提供了一種安全的方式來生成、存儲和管理密鑰&#xff0c;而無需將密鑰暴露給應用程序本身。以下是如何使用 AndroidKeyStore 的基本步驟和示例代碼。 檢查 AndroidKeyStor…