国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

React精髓!一篇全概括小結(急速)

2024-05-06 15:39:03
字體:
來源:轉載
供稿:網(wǎng)友

學和使用react有一年多了,最近想在梳理一下react基礎知識,夯實基礎,激流勇進~
關于reacr-router,redux,redux-saga后續(xù)都會慢慢輸出,希望各位看官老爺持續(xù)關注~~要是能給個贊鼓勵一下就更贊了~

提醒一下:

看完之后抓緊時間趁熱打鐵,redux,react-redux,redux-saga

react基礎知識速覽

1、什么是JSX?

一個JSX語法的示例,如下所示

const element = <h1>Hello, world!</h1>;

這種語法形式,既不是HTML,也不是字符串,而是稱之為JSX,是React里用來描述UI和樣式的語法,JSX最終會被編譯為合法的JS語句調用(編譯器在遇到{時采用JS語法進行解析,遇到<就采用HTML規(guī)則進行解析)

2、嵌入表達式

JSX中,可以使用花括號{}嵌入任意的JavaScript合法表達式,如:2 + 2、user.firstName、formatName(user)都是合法的。示例如:

const user = { firstName: 'Zhang', lastName : 'Busong'};const elem = ( <h1>Hello, {formatName(user)}</h1>);/*這里的(),實際上是可選的,但是React推薦加入(),這樣子就會被視為一個表達式,而不會導致自動插入分號的問題*/ReactDOM.render( element, document.getElementById('app'))

3、JSX也是一種表達式

JSX本身也是一種表達式,所以它可以像其他表達式一樣,用于給一個變量賦值、作為函數(shù)實參、作為函數(shù)返回值,等等。如:

function getGreeting(user) { if (user) {  return <h1>Hello, {formatName(user)}</h1> } return <h1>Hello, Guest!</h1>;}

注意:

1、在JSX中,聲明屬性時不要使用引號,如果聲明屬性的時候使用引號,那么將被作為字符串解析,而不會被作為一個表達式解析,如:

<div firstName="{user.firstName}" lastName={user.lastName}></div>

解析后,可以得到:

<div firstName="{user.firstName}" lastName="Lau"></div>

因此,當我們需要使用一個字符串字面量的時候,可以使用引號,但是如果要作為表達式解析的時候,則不應當使用引號

2、在JSX中,有些屬性名稱需要進行特殊處理。如class應該用className代替,tabindex則用tabIndex代替。這是因為JSX本質上更接近于JavaScript,而class是JavaScript中的保留字。同時,應該使用camelCase來命名一個屬性,而不是使用HTML的屬性命名方式

3、JSX本身已經(jīng)做了防注入處理,對于那些不是明確編寫的HTML代碼,是不會被解析為HTML DOM的,ReactDOM會將他們一律視為字符串,在渲染完成前就轉化為字符串,所以可以防止XSS攻擊

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 焦作市| 宜宾市| 河北省| 临泽县| 毕节市| 赤壁市| 丰城市| 三原县| 金川县| 离岛区| 柞水县| 武穴市| 图木舒克市| 耒阳市| 旬邑县| 大姚县| 仙桃市| 东台市| 广西| 靖安县| 扶风县| 临泽县| 色达县| 阿瓦提县| 永善县| 恩平市| 合肥市| 扬州市| 咸阳市| 乌拉特中旗| 漠河县| 濉溪县| 土默特右旗| 临泉县| 股票| 无锡市| 兴义市| 石渠县| 雷山县| 中阳县| 德清县|