React入門

Html文件里溯警,弄一個(gè)container趣苏,但會(huì)被replace

<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>

js里,一個(gè)render方法梯轻,(A,B)食磕,A是組件名稱,里面還能插入組件屬性喳挑,如下面的name="world"彬伦,并通過this.prop.xxx調(diào)用,B是插入到html的那個(gè)標(biāo)簽并replace掉

ReactDOM.render(
  <Hello name="World" />,
  document.getElementById('container')
);

關(guān)于組件新建伊诵,就是
React.createClass({
XXX:XXX;
XXX:xxx;
...
}

就是一個(gè)對(duì)象下面各種屬性方法哈
react與css
兩種寫法单绑,一個(gè)寫在css文件中,但要注意的是曹宴,給標(biāo)簽添加class時(shí)搂橙,根據(jù)es6最新特性,要寫成className

<Hello name="World" className="ddd" />

另一種寫法笛坦,是寫在js新建組件里面区转,render方法return時(shí)加上style={(鍵值對(duì)寫法)}(react規(guī)定)
來個(gè)例子

var Hello=React.createClass({
  render:function(){
      var styleObj={
                     color:"red";(react規(guī)定要以字符串形式,所以雙引號(hào))
                     fontSize:"40px"(react規(guī)定名字要駝峰式寫法)
      }弯屈;
      return<div style={styleObj}></div>;
   }

生命周期和this.state


  • 一張圖蜗帜,一個(gè)hook的理念,在creatClass方法中的hook方法進(jìn)行使用资厉,應(yīng)該就把生命周期闡述完了厅缺。

  • 講到生命周期,不得不說this.state.在圖中你能看到宴偿,mounting階段湘捎,有一個(gè)getinitialState()方法是處于所有hook之前,這個(gè)方法用于定義初始狀態(tài)窄刘,也就是一個(gè)對(duì)象窥妇,這個(gè)對(duì)象可以在接下來的creatClass方法通過 this.state.xxx讀取屬性

  • 既然有了this.state了,肯定要有改變值的方法娩践,就是this.setState活翩,這個(gè)可謂是核心,每次修改以后翻伺,自動(dòng)調(diào)用 this.render方法材泄,再次渲染組件。就是所謂的動(dòng)態(tài)改變了吨岭,弄一個(gè)例子看看

var LikeButton = React.createClass({

getInitialState: function() {

return {liked: false};

},

handleClick: function(event) {

this.setState({liked: !this.state.liked});

},

render: function() {

var text = this.state.liked ? 'like' : 'haven\'t liked';

return (

<p onClick={this.handleClick}>

You {text} this. Click to toggle.

</p>

);

}

});

ReactDOM.render(

<LikeButton />,

document.getElementById('example')

);

獲取真實(shí)的dom
其實(shí)就是給標(biāo)簽綁定一個(gè)ref值拉宗,通過索引ref值得到真實(shí)dom節(jié)點(diǎn)

最后來一個(gè)實(shí)例來結(jié)束入門

var TestClickComponent=React.createClass({
  render:funtion(){
     handleClick:function(event){
      var tipE =React.findDomNode(this.refs.ddd);
       if(tipE.style.display="none")
        {
              .......
         }

     return(
              <div>
                   <button onClick={this.handleClick}>顯示隱藏</button><span ref="ddd">測(cè)試點(diǎn)擊隱藏
               <div>
         );
    }
});
var TestInputComponent=React.createClass({
 getInitialState:function(){
    return {
         inputContent:""
     }
},
 render:function(){
     changHandler:function(event){
      this.setState({
          inputContent:event.target.value
   });


       }

     return(
        <div>
            <input type="text" onChange={this.changeHandler}}/><span>{this.state.inputContent}</span>
        <div>
     );
}
});  

React.render(
<div>
     <TestClickCompent/>
     <TestInputCompent/>
</div>
document.getElementById("container"));
  • 文本輸入框的值,不能用this.props.value讀取旦事,而要定義一個(gè)onChange
    事件的回調(diào)函數(shù)魁巩,通過event.target.value讀取用戶輸入的值。textarea元素姐浮,select元素谷遂,radio元素都屬于這種情況
  • 盡量都使用駝峰式寫法命名,能避免很多bug单料,有一個(gè)特別注意埋凯,組件命名第一個(gè)字母要大寫的
  • React的監(jiān)聽事件中,要獲取真實(shí)的dom扫尖,有React.findDomNode(this.refs.XXX)白对,就是相當(dāng)于原來的選擇器,但這里要和文本框內(nèi)容區(qū)分開
  • 在render中换怖,對(duì)兩個(gè)組件用了個(gè)div包起來甩恼,因?yàn)閞ender不能直接放兩個(gè)組件
  • 第一個(gè)組件,就是在button中添加事件(注意大小寫)handleClick沉颂,在handClick方法中獲取span的真實(shí)dom節(jié)點(diǎn)及其屬性并進(jìn)行操作
  • 第二個(gè)組件中条摸,就是一個(gè)state和setState進(jìn)行動(dòng)態(tài)交互的一個(gè)小例子,在 getInitialState中定義屬性inputContent铸屉,并在事件對(duì)調(diào)函數(shù)中改變他進(jìn)行動(dòng)態(tài)輸出(event.target.value)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钉蒲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子彻坛,更是在濱河造成了極大的恐慌顷啼,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昌屉,死亡現(xiàn)場(chǎng)離奇詭異钙蒙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)间驮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門躬厌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人竞帽,你說我怎么就攤上這事扛施。” “怎么了屹篓?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵疙渣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我抱虐,道長(zhǎng),這世上最難降的妖魔是什么饥脑? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任恳邀,我火速辦了婚禮懦冰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谣沸。我一直安慰自己刷钢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布乳附。 她就那樣靜靜地躺著内地,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赋除。 梳的紋絲不亂的頭發(fā)上阱缓,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音举农,去河邊找鬼荆针。 笑死,一個(gè)胖子當(dāng)著我的面吹牛颁糟,可吹牛的內(nèi)容都是我干的航背。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼棱貌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼玖媚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起婚脱,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤今魔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后起惕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涡贱,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年惹想,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了问词。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嘀粱,死狀恐怖激挪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锋叨,我是刑警寧澤垄分,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站娃磺,受9級(jí)特大地震影響薄湿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一豺瘤、第九天 我趴在偏房一處隱蔽的房頂上張望吆倦。 院中可真熱鬧,春花似錦坐求、人聲如沸蚕泽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)须妻。三九已至,卻和暖如春泛领,著一層夾襖步出監(jiān)牢的瞬間荒吏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工师逸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留司倚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓篓像,卻偏偏與公主長(zhǎng)得像动知,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子员辩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • 歡迎訪問我的博客 早期盒粮,我們開發(fā)web應(yīng)用,只能是通過請(qǐng)求服務(wù)器奠滑,服務(wù)端響應(yīng)請(qǐng)求丹皱,返回一個(gè)頁(yè)面,宋税,每次瀏覽器都得對(duì)...
    驚鴻三世閱讀 516評(píng)論 0 2
  • 現(xiàn)在最熱門的前端框架摊崭,毫無疑問是React。在基于React的React Native發(fā)布一天之內(nèi)杰赛,就獲得了 50...
    Mycro閱讀 1,006評(píng)論 3 6
  • 在React這股目前最熱前端框架之風(fēng)刮來之前呢簸,一直在Cocos2d-html5游戲和半路出家的Android應(yīng)用的...
    hahafei閱讀 363評(píng)論 0 2
  • React簡(jiǎn)介 React是一個(gè)用于構(gòu)建用戶界面的JavaScript庫(kù),主要有以下幾個(gè)特點(diǎn): 聲明式設(shè)計(jì)--Re...
    紫諾_qiu閱讀 892評(píng)論 0 2
  • 1.Linux鏈接概念Linux鏈接分兩種乏屯,一種被稱為硬鏈接(Hard Link)根时,另一種被稱為符號(hào)鏈接(Symb...
    everfight閱讀 308評(píng)論 0 0