摘要:原文翻譯并不準(zhǔn)確,還是看原文好。它稱之為它是的一種語法擴(kuò)展。例如,以及等都是合法表達(dá)式。任何值在渲染之前都會(huì)轉(zhuǎn)換為字符串。這就避免了攻擊。讀取這些對(duì)象,然后使用它們?nèi)?gòu)造元素,并且保持更新。
開始學(xué)習(xí)React從過一遍官網(wǎng)資料開始。
introducting JSX原文 翻譯并不準(zhǔn)確,還是看原文好。
JSX介紹看下面的代碼
const element =Hello,world
這個(gè)有趣的連接語法既不是字符串也不是HTML。
它稱之為JSX,它是JavaScript的一種語法擴(kuò)展。我們推薦在React中使用它去編寫UI界面的樣子。JSX可能會(huì)使你想起模板語言,但是它帶來的是全套的JavaScript功能。
JSX生產(chǎn)React「元素」。在下一節(jié)我們將探索渲染React元素到DOM的過程。從下面的例子你能夠?qū)W到JSX的基礎(chǔ)知識(shí)。
表達(dá)式嵌套在JSX中你可以將JavaScript表達(dá)式通過花括號(hào)嵌套在JSX中使用。
例如,2+2 user.firstName,以及formatName(user)等都是合法表達(dá)式。
function formatName(user) { return user.firstName + " " + user.lastName; } const user = { firstName: "Harper", lastName: "Perez" }; const element = (Hello, {formatName(user)}!
); ReactDOM.render( element, document.getElementById("root") );
當(dāng)我們書寫多行JSX代碼時(shí)候,為了良好的可讀性,雖不是必須,但還是推薦使用括號(hào)包裹避免產(chǎn)生JavaScript分號(hào)自動(dòng)插入的問題。
JSX也是一種表達(dá)式通過編譯之后,JSX表達(dá)式會(huì)編譯成為一個(gè)普通的JavaScript對(duì)象。
這就意味著,你可以在if聲明以及for循環(huán)中使用JSX,可以將它賦值給變量,將它作為函數(shù)參數(shù)或者返回值使用。
function getGreeting(user) { if (user) { return在JSX中定義屬性Hello, {formatName(user)}!
; } returnHello, Stranger.
; }
你可以使用引號(hào)標(biāo)注字符串作為屬性值;
const element = ;
你也可以用在花括號(hào)中寫JavaScript表達(dá)式作為屬性值;
const element = 關(guān)閉標(biāo)簽,就像XMLconst element = ;JSX標(biāo)簽包含子元素
const element = ();Hello!
Good to see you here.
警告:JSX語法相比HTML更接近JavaScript,React DOM使用`camelCase`(駝峰命名)屬性命名規(guī)定代替HTML屬性名。 例如:`class`在JSX中是`className`,`tabindex`是`tabIndex`。JSX可以防止注入攻擊(XSS)通過JSX傳入數(shù)據(jù)會(huì)更安全
const title = response.potentiallyMaliciousInput; // This is safe: const element ={title}
;默認(rèn)情況,React DOM在渲染JSX之前會(huì)排除嵌入的輸入值,因此確保在你的應(yīng)用中不會(huì)注入任何不明確的書面值。任何值在渲染之前都會(huì)轉(zhuǎn)換為字符串。這就避免了XSS攻擊。
JSX表現(xiàn)為對(duì)象Babel通過調(diào)用React.createElement()來編譯JSX
下面兩段代碼是相同的const element = (Hello, world!
);const element = React.createElement( "h1", {className: "greeting"}, "Hello, world!" );React.createElement()展現(xiàn)了一些檢查項(xiàng)來幫助你減少代碼bug,但是本質(zhì)上老說它創(chuàng)建了這樣的對(duì)象
// Note: this structure is simplified const element = { type: "h1", props: { className: "greeting", children: "Hello, world" } };這些對(duì)象稱之為「React元素」.你可以把他們當(dāng)做你想在界面上看到一種描述。React讀取這些對(duì)象,然后使用它們?nèi)?gòu)造DOM元素,并且保持更新。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84901.html
摘要:它的設(shè)計(jì)使得即使是大型團(tuán)隊(duì)也能以高度隔離的方式應(yīng)對(duì)功能變更。獲取數(shù)據(jù)數(shù)據(jù)變更性能,都是讓人頭痛的問題。通過維護(hù)組件與數(shù)據(jù)間的依賴在依賴的數(shù)據(jù)就緒前組件不會(huì)被渲染為開發(fā)者提供更加可預(yù)測(cè)的開發(fā)環(huán)境。這杜絕了隱式的數(shù)據(jù)依賴導(dǎo)致的潛在。 關(guān)于Relay與GraphQL的介紹 原文:Introducing Relay and GraphQL 視頻地址(強(qiáng)烈建議觀看):https://www.y...
摘要:最小的示例如下它會(huì)顯示一個(gè)的標(biāo)題在頁面上。指南的指南在這個(gè)指南中,我們將會(huì)檢驗(yàn)的建筑模塊和元素和組件。這是循序漸進(jìn)的指南關(guān)于原則的第一章。它可能會(huì)花半小時(shí)到一個(gè)小時(shí),但是好處是你不會(huì)感覺同時(shí)在學(xué)習(xí)和。注意此指南偶爾在示例中采用新的語法。 Hello World 最小的 React 示例如下: ReactDOM.render( Hello, world!, documen...
摘要:文檔翻譯系列三簡介先來看一下下面的變量聲明這種有趣的標(biāo)簽語法既不是字符串也不是。這種形式被稱作,他是的一種擴(kuò)展語法。為便于閱讀,我們將分隔成多行。表示對(duì)象將編譯成調(diào)用。我們建議您為選擇的編輯器搜索語法方案,以便和代碼都能夠被正確高亮的顯示。 React文檔翻譯系列(三)JSX簡介 先來看一下下面的變量聲明: const element = Hello world! 這種有趣的標(biāo)簽語法既...
摘要:使用的一個(gè)主要好處是樣式隔離。假設(shè)我們?nèi)匀皇褂脕頀旖舆@個(gè),如下所示請(qǐng)注意,元素位于模板元素內(nèi)部,并與一起克隆到內(nèi)。這允許在陰影根中定義的樣式規(guī)則作用域。封閉模式的設(shè)計(jì)目標(biāo)是禁止對(duì)來自外部世界的中的節(jié)點(diǎn)進(jìn)行任何訪問。 使用shadow DOM的一個(gè)主要好處是樣式隔離。 要了解這意味著什么,讓我們來假設(shè)我們要?jiǎng)?chuàng)建自定義進(jìn)度條組件。 我們可以使用兩個(gè)嵌套的DIV來顯示條形,使用另一個(gè)DIV來...
摘要:代表基本上是常規(guī)。第次更新,在年完成。幾乎完全支持所有主要的瀏覽器。但這將是一段時(shí)間,直到較舊版本的瀏覽器逐步停止使用。這意味著將轉(zhuǎn)換為。在組件的情況下,寫入的將如下所示在我們?cè)诘谝粋€(gè)作出反應(yīng)組件使用的語法是語法。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3797原文:https://www.fullstackreact....
閱讀 2675·2021-11-23 09:51
閱讀 1659·2021-11-22 13:54
閱讀 2799·2021-11-18 10:02
閱讀 953·2021-08-16 10:57
閱讀 3571·2021-08-03 14:03
閱讀 1883·2019-08-30 15:54
閱讀 3539·2019-08-23 14:39
閱讀 612·2019-08-23 14:26