react的基本語(yǔ)法

react 官方推薦使用 一種JSX語(yǔ)法,類似xml
react.js 引入的時(shí)候放在react-dom.js的前面引入
引入jsx.js的時(shí)候,一定要指定 type="babel" 才能識(shí)別混寫的jsx.js 文件

<script src="jsx.js" type="text/babel"></script>

基礎(chǔ)語(yǔ)法

我們先在index.html的文件里面寫一個(gè)div,
<div class="box"></div>
其他的操作都在jsx.js的文件里面
瀏覽頁(yè)面的時(shí)候,要切換到服務(wù)器模式

常量用法

const a = <h1>Hello react!!</h1>;
ReactDOM.render(
  <div>{ a }</div>,
document.querySelector(".box")
)

以上,ReactDOM.render(html,target[,callback])將內(nèi)容渲染到指定的節(jié)點(diǎn)
就是把常量 a 渲染到 box這個(gè)類名的容器里面,(記得div的后面要加一個(gè)逗號(hào).)

變量用法 內(nèi)部解析

let msg = "Hello React!!!";
let ;
定義一個(gè)常量b
const b = <a href={ href }>{ msg }</a>
ReactDOM.render( <div>{ b }</div>, document.querySelector(".box") )

頁(yè)面就會(huì)顯示一個(gè)可以跳轉(zhuǎn)到百度的一個(gè) a 標(biāo)簽
記憶點(diǎn):
1 { } 就代表進(jìn)入javascript 的執(zhí)行環(huán)境

不用jsx語(yǔ)法,用react 提供的語(yǔ)法怎么寫

const c = React.createElement("a",{href:"http://www.baidu.com"},"復(fù)雜超鏈接")

ReactDOM.render(
  <div>{ c }</div>,
document.querySelector(".box")
)

這是不使用jsx的語(yǔ)法,使用react創(chuàng)建一個(gè)元素的語(yǔ)法(寫法)
這是創(chuàng)建了一個(gè)a 標(biāo)簽,創(chuàng)建了一個(gè)href 屬性,

還有其他react方法,稍微簡(jiǎn)單點(diǎn)的

const d = React.DOM.a({href:"http://www.baidu.com"},"復(fù)雜超鏈接2")
ReactDOM.render(
  <div>{ d }</div>,
document.querySelector(".box")
)

嵌套的寫法

const e = <div>
  <h1>嵌套</h1>
  <span>span嵌套</span>
  <input type="text" />
 </div>
ReactDOM.render(
  <div>{ e }</div>,
document.querySelector(".box")
)

用createElement怎么寫

把子作為第三個(gè)參數(shù)創(chuàng)建進(jìn)來(lái) 比e的方法要難一些,

const f = React.createElement("div",null,
    React.createElement("h1",null,"嵌套2")
);
ReactDOM.render(
  <div>{ f }</div>,
document.querySelector(".box")
)

使用react.js不一定要使用jsx語(yǔ)法
可以使用javascript 原生語(yǔ)法,使用與不使用在嵌套的時(shí)候,就表現(xiàn)得很明顯了,不使用jsx ,代碼很多,一直在createElement,但是使用了的話,就直接使用標(biāo)簽就可以了

image.png

jsx真正的語(yǔ)法

image.png

1 必須要有結(jié)束的斜杠結(jié)束符 <input type="text" />
2 注意, style 要用兩個(gè)花括號(hào),外面的花括號(hào)說(shuō)明進(jìn)入javascript 環(huán)境,里面的花括號(hào)說(shuō)明 對(duì)象,不等同于vue的表達(dá)式

樣式的設(shè)置,表達(dá)式語(yǔ)法

const g = <span style={{color:"red",fontSize:"30px"}}>style寫法</span>
ReactDOM.render(
  <div>{ g }</div>,
document.querySelector(".box")
)

換一種寫法,style 就可以用一個(gè)花括號(hào)寫

const so = {
    color:"blue",
    fontSize:"20px",
    border:"1px solid pink",
    background :"#ccc"
}
const h = <span style={ so }>style 寫法2</span>
ReactDOM.render(
  <div>{ h }</div>,
document.querySelector(".box")
)

這樣寫,樣式加的比較多,但是也是分開三部分的,so 是樣式部分,const h 是標(biāo)簽部分,ReactDOM.render()是渲染頁(yè)面部分

關(guān)鍵字沖突

我們?cè)趇ndex.html里面寫一點(diǎn)樣式

<style>
.cn{
        color:red;
        font-size: 40px;
    }
</style>
//在jsx.js里面寫
const i = <span className="cn">class 寫法</span>

1 直接象在寫頁(yè)面樣式的時(shí)候class="cn"
是不可以的,要寫成className
2 對(duì)于一些關(guān)鍵字要進(jìn)行轉(zhuǎn)換, class 要寫成 className, label 標(biāo)簽的for屬性 要寫成 htmlFor

const ii = <div>
    <label htmlFor="male">nan</label>
    <input type="radio" id="male" name="sex"/>
    <label htmlFor="ff">nv</label>
    <input type="radio" id="ff" name="sex"/>
</div>
ReactDOM.render(
  <div>{ ii }</div>,
document.querySelector(".box")
)

image.png

如果用for 就會(huì)報(bào)上面的錯(cuò)誤
改成htmlFor 就不會(huì)報(bào)錯(cuò)了
label 標(biāo)簽是應(yīng)用于 選擇的

跟標(biāo)簽及煩人的注釋寫法

ReactDOM.render(
  <div>
{/*這是一段注釋 jsx 的注釋必須用{}包裹,只能有一個(gè)根節(jié)點(diǎn)*/}
      { ii }
      { a }
        { b }
        { c }
        { d }
        { e }
        { f }
        { g }
        { h }
        { ii }
        { i }
        { j }
        { k }
        { l }
  </div>,
document.querySelector(".box")
)

數(shù)組的使用

const j = [
    
        <h1 key="1">數(shù)組一</h1>,
        <h1 key="2">數(shù)組二</h1>,
        <h1 key="3">數(shù)組三</h1>
    
]
ReactDOM.render(
<div>
{ j }
</div>
)
document.querySelector(".box")

一個(gè)數(shù)組里面有三個(gè)元素,沒(méi)有key屬性的時(shí)候,會(huì)報(bào)錯(cuò)

image.png
const k = <div>
<hr/>
    <h1>Hello</h1>
    { j }
</div>;
ReactDOM.render(
<div>
{ k }
</div>
)
document.querySelector(".box")

j 是一個(gè)數(shù)組,用{ } 放在那里都可以
如果數(shù)組里面直接是一堆標(biāo)簽,那么就會(huì)直接渲染到另一個(gè)父標(biāo)簽里面,可以渲染到跟div 里面,也可以渲染到 k 的父元素div 里面

數(shù)組
const l =["數(shù)組四","數(shù)組5","數(shù)組6"];

ReactDOM.render(
<div>
{ l }
</div>
)
document.querySelector(".box")

如果沒(méi)有標(biāo)簽包裹,就會(huì)直接渲染到頁(yè)面中,沒(méi)有標(biāo)簽包裹
我們可以這樣寫

使用map函數(shù)遍歷數(shù)組

ReactDOM.render(
<div>
{
    l.map((m,index)=>{
    return <h1 key={ index }>{ m }</h1>
  })
}
</div>
)
document.querySelector(".box")
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糕篇,一起剝皮案震驚了整個(gè)濱河市华糖,隨后出現(xiàn)的幾起案子袱衷,更是在濱河造成了極大的恐慌售躁,老刑警劉巖朝刊,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件残炮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡啃洋,警方通過(guò)查閱死者的電腦和手機(jī)梆惯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)焙矛,“玉大人,你說(shuō)我怎么就攤上這事残腌〈逭澹” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵抛猫,是天一觀的道長(zhǎng)蟆盹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)闺金,這世上最難降的妖魔是什么逾滥? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮败匹,結(jié)果婚禮上寨昙,老公的妹妹穿的比我還像新娘。我一直安慰自己掀亩,他們只是感情好舔哪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著槽棍,像睡著了一般捉蚤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炼七,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天缆巧,我揣著相機(jī)與錄音,去河邊找鬼豌拙。 笑死陕悬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姆蘸。 我是一名探鬼主播墩莫,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼芙委,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了狂秦?” 一聲冷哼從身側(cè)響起灌侣,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎裂问,沒(méi)想到半個(gè)月后侧啼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堪簿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年痊乾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椭更。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哪审,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虑瀑,到底是詐尸還是另有隱情湿滓,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布舌狗,位于F島的核電站叽奥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痛侍。R本人自食惡果不足惜朝氓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望主届。 院中可真熱鬧赵哲,春花似錦、人聲如沸岂膳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谈截。三九已至,卻和暖如春涧偷,著一層夾襖步出監(jiān)牢的瞬間簸喂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工燎潮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喻鳄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓确封,卻偏偏與公主長(zhǎng)得像除呵,于是被迫代替她去往敵國(guó)和親再菊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南颜曾,這只是我在學(xué)習(xí)過(guò)程中的一些閱讀筆記纠拔,個(gè)人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,813評(píng)論 1 18
  • 原文地址:Learning React.js is easier than you think原文作者:Samer...
    sunshine小小倩閱讀 4,220評(píng)論 3 41
  • 最近看了一本關(guān)于學(xué)習(xí)方法論的書泛豪,強(qiáng)調(diào)了記筆記和堅(jiān)持的重要性稠诲。這幾天也剛好在學(xué)習(xí)React,所以我打算每天堅(jiān)持一篇R...
    gaoer1938閱讀 1,672評(píng)論 0 5
  • 自己最近的項(xiàng)目是基于react的诡曙,于是讀了一遍react的文檔臀叙,做了一些記錄(除了REFERENCE部分還沒(méi)開始讀...
    潘逸飛閱讀 3,353評(píng)論 1 10
  • 安裝: 概述 React起源于FaceBook的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場(chǎng)上所有的JavaScript MVC框架...
    姒沝無(wú)痕閱讀 714評(píng)論 0 0