ReactJs導(dǎo)航欄的實(shí)現(xiàn)

  • getInitialState 方法用于定義初始狀態(tài)威彰,使用this.state.屬性的方式讀取狀 態(tài)值肝谭。
  • 當(dāng)狀態(tài)發(fā)生變化是就會(huì)調(diào)用render方法重新渲染掘宪。
  • 通過(guò)this.setState()的方法改變狀態(tài)值。
  • 通過(guò)this.props.屬性的方式獲取父組件傳遞給子組件的屬性或者方法攘烛。
  • 子組件是不能直接修改父組件的狀態(tài)魏滚,因此父組件傳遞給子組件一個(gè)方法,子組件想要修改狀態(tài)時(shí)坟漱,只需調(diào)用父組件傳過(guò)來(lái)的方法改變父組件的狀態(tài)鼠次。
  • 每一個(gè)子組件之間都是相互獨(dú)立的,當(dāng)一個(gè)組件得到一個(gè)改變是另一個(gè)組件狀態(tài)的命令, 是無(wú)法傳遞命令腥寇,因此需要將這個(gè)狀態(tài)交給他們共同的父組件成翩,讓父組件傳遞命令。

Index 標(biāo)記的是那一欄被選中的狀態(tài)赦役,當(dāng)為0是表示沒(méi)有點(diǎn)擊什么一欄麻敌。onhandleClick 方法是改變狀態(tài)的方法。

var NavigationBar = React.createClass({

    getInitialState: function (){
       return {index:0}
   },
   onhandleClick : function(myIndex){
       this.setState({index:myIndex })
   },
   render(){
       return(
           <div className="nav">
              <BarList msg={this.props.msg} index={this.state.index} onhandleClick={this.onhandleClick}/>
          </div>);
       }
   }
))

BarList組件 是有多個(gè)Bar組件組成掂摔,Bar組件的個(gè)數(shù)是由父組件傳遞的msg數(shù)據(jù)確定的术羔,通過(guò)時(shí)候用Map欄循環(huán)遍歷生成Bar組件

var BarList = React.createClass({
    render(){
        var index=this.props.index;
        var onhandleClick=this.props.onhandleClick;
        var bars = this.props.msg.map(function(m){
                return (<Bar icon={m.icon}  onhandleClick={onhandleClick} index={index} myIndex={m.index}
                name={m.name} />)       
         }
        );
        return(
        <div className="bars">{bars}</div>
        );
    }
});
var Bar = React.createClass({

    getInitialState:function(){
        return({isSelect:0})
    },
    handleClick:function(event){
     this.props.onhandleClick(this.props.myIndex)
    },
    onhandleOver:function(){  
        this.setState({isSelect:this.props.myIndex})
    },
    onhandleOut:function(){  
        this.setState({isSelect:0})
    },
    render(){
// 當(dāng)選中的值和父組件相同時(shí),Index的值就是那一欄被選中
//當(dāng)鼠標(biāo)以上是狀態(tài)為1乙漓,離開(kāi)為零通過(guò)Index和IsSlecct的值確定每一欄的狀態(tài)
        var style="bar"; 
        style=this.props.index===this.props.myIndex?"bar active":"bar";
        if(this.state.isSelect==0&&this.props.index!=this.props.myIndex)
            style="bar"
        if(this.state.isSelect!=0)
            style="bar active"
        return(
            <div className={style} 
             onMouseOver={this.onhandleOver} onMouseOut={this.onhandleOut}
             onClick={this.handleClick} >
                <a className="bara" >
                    <i></i>
                    {this.props.name}
                </a>
            </div>
        );
    }
})```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末级历,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叭披,更是在濱河造成了極大的恐慌寥殖,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涩蜘,死亡現(xiàn)場(chǎng)離奇詭異嚼贡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)皱坛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)编曼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)豆巨,“玉大人剩辟,你說(shuō)我怎么就攤上這事⊥樱” “怎么了贩猎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)萍膛。 經(jīng)常有香客問(wèn)我吭服,道長(zhǎng),這世上最難降的妖魔是什么蝗罗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任艇棕,我火速辦了婚禮,結(jié)果婚禮上串塑,老公的妹妹穿的比我還像新娘沼琉。我一直安慰自己,他們只是感情好桩匪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布打瘪。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闺骚。 梳的紋絲不亂的頭發(fā)上彩扔,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音僻爽,去河邊找鬼虫碉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛进泼,可吹牛的內(nèi)容都是我干的蔗衡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乳绕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绞惦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起洋措,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤济蝉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后菠发,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體王滤,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年滓鸠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雁乡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糜俗,死狀恐怖踱稍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悠抹,我是刑警寧澤珠月,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站楔敌,受9級(jí)特大地震影響啤挎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卵凑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一庆聘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勺卢,春花似錦伙判、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)织盼。三九已至,卻和暖如春酱塔,著一層夾襖步出監(jiān)牢的瞬間沥邻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工羊娃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唐全,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓蕊玷,卻偏偏與公主長(zhǎng)得像邮利,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子垃帅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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