React.js學習筆記(4) - 生命周期理解(計時器) + (font-awesome)+ ( ref屬性 ) + ( React.children與this.props.children ) + ( onFocus )

(1)計時器

知識點

(1) toLocaleTimeString() :根據(jù)本地時間把 Date 對象的時間部分轉(zhuǎn)換為字符串
(2) toLocaleDateString() : 根據(jù)本地時間把 Date 對象的日期部分轉(zhuǎn)換為字符串
(3) 一些組件啟動的動作鱼蝉,包括像 Ajax 數(shù)據(jù)的拉取操作北发、一些定時器的啟動等,就可以放在 componentWillMount 里面進行
/**
 * Created by WOOW.WU on 2017/9/6.
 */

import React, { Component } from 'react';

class Clock extends Component {
    constructor() {  // 數(shù)據(jù)的初始化
        super();
        this.state = {
            date: new Date()
        }
    }

    componentWillMount() {  //組件即將被掛在,render()之前
        this.timer = setInterval( () => {
            this.setState({
                date: new Date()
            })
        },1000)
    }

    componentWillUnmount() {
        clearInterval(this.timer);
        // 必須銷毀定時器伴澄,因為隱藏的時候仍然在不停的setState
        // 而setState只能在已經(jīng)掛載或者正在掛載的組件上調(diào)用
    }
    render() {
        return(
            <div>
                <h1>
                    <p>現(xiàn)在的時間是</p>
                    { this.state.date.toLocaleTimeString() }
                   //{ this.state.date.toLocalDateString() }
                </h1>
            </div>
        )
    }
}


export default Clock

總結(jié):
我們一般會把組件的 state 的初始化工作放在 constructor 里面去做真仲;在 componentWillMount 進行組件的啟動工作,例如 Ajax 數(shù)據(jù)拉取漏健、定時器的啟動嚎货;組件從頁面上銷毀的時候,有時候需要一些數(shù)據(jù)的清理蔫浆,例如定時器的清理殖属,就會放在 componentWillUnmount 里面去做。




(2) 組件的掛載

組件的掛載:組件的掛載指的是將組件渲染并且構(gòu)造 DOM 元素然后插入頁面的過程瓦盛。

(3) ref屬性

ref屬性:ref屬性用來獲取已經(jīng)掛載的元素的 DOM 節(jié)點


 // 自動獲取input框(textarea)的焦點

 componentDidMount() {
        this.input.focus();
        // this.textarea.focus();
    }
--------------------------------------
 <input
    ref={ (input) => this.input = input }
 />

--------------------------------------
 <textarea type="text"
    ref={ (textarea) => this.textarea = textarea}
   // ref={ (aa) => this.textarea = aa } 兩種寫法相等
 />

(4) this.props.children 和 React.Children.map


object React.Children.map(object children, function fn [, object context])

使用方法:
React.Children.map(this.props.children, function (child) {
    return <li>{child}</li>;
})

其他方法
this.props.children.forEach(function (child) {
    return <li>{child}</li>
})
// this.props.children.forEach類似于 React.Children.map()洗显,但是不返回對象。

( App父組件 )

import React, { Component } from 'react';
import './App.css';
import PropsChildren from './propsChildren/propsChildren';
class App extends Component {
    render() {
      return (
        <div className="App" >  
            <div className="father">
                <PropsChildren>
                    <div>
                        <h1>props.chilere例子</h1>
                        <input type="text" placeholder="props.chilere例子"/>
                    </div>
                </PropsChildren>
            </div>
        </div>
    );
  }
}

export default App;

-----------------------------------------------------------------------

( PropsChildren子組件 )


import React, { Component } from 'react';

class Comment extends Component {
    render() {
        return(
            <div>
                <div>
                    { this.props.children } 

                    //下面是React.Children.map的使用
                    {
                        React.Children.map(this.props.children,function(child) {
                            return <div>{ child }</div>
                        })
                    }                 
                </div>
            </div>

        )
    }
}

export default Comment

--------------------------------------------------------------------
( 父組件樣式 )
.father{
  margin:50px;
  padding:50px;
  background-color: #FFB6C1;
}

(5) onFocus獲得焦點時谭溉,觸發(fā)的函數(shù)

(常用的事件函數(shù)匯總)http://lib.csdn.net/article/react/54647


<div className="inputDom">
    <input type="text"
           value={ this.state.inputContent }
            onChange = { this.changeInput.bind(this) }
            ref="focusDom"
            onFocus={ this.clearContent.bind(this) }
      />
     <div onClick={ this.focusClear.bind(this) }>清空內(nèi)容墙懂,獲得焦點</div>
</div>
-------------------------------------------------------------------------------

 clearContent() {
        this.setState({
            inputContent: ''
        })
  }
 focusClear() {
        this.setState({ inputContent: ''}, () => {
            this.refs.focusDom.focus()
        } )
    }

------------------------------------------------------------------------------

(6) font-awesome 字體圖標

官網(wǎng):http://fontawesome.io/icons/

  • 安裝
cnpm install font-awesome --save
  • 使用
import 'font-awesome/css/font-awesome.css';
  • 改變大小,顏色
font-size:20px;
color:red;

(7) iconmoon字體圖標制作網(wǎng)站

官網(wǎng):https://icomoon.io/#home

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扮念,隨后出現(xiàn)的幾起案子损搬,更是在濱河造成了極大的恐慌,老刑警劉巖柜与,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巧勤,死亡現(xiàn)場離奇詭異,居然都是意外死亡弄匕,警方通過查閱死者的電腦和手機颅悉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迁匠,“玉大人剩瓶,你說我怎么就攤上這事驹溃。” “怎么了延曙?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵豌鹤,是天一觀的道長。 經(jīng)常有香客問我枝缔,道長布疙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任愿卸,我火速辦了婚禮灵临,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘趴荸。我一直安慰自己儒溉,他們只是感情好,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布赊舶。 她就那樣靜靜地躺著睁搭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笼平。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天舔痪,我揣著相機與錄音寓调,去河邊找鬼。 笑死锄码,一個胖子當著我的面吹牛夺英,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滋捶,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痛悯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了重窟?” 一聲冷哼從身側(cè)響起载萌,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巡扇,沒想到半個月后扭仁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡厅翔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年乖坠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刀闷。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡熊泵,死狀恐怖仰迁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顽分,我是刑警寧澤徐许,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站怯邪,受9級特大地震影響绊寻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悬秉,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一澄步、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧和泌,春花似錦村缸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至县恕,卻和暖如春东羹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背忠烛。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工属提, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人美尸。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓冤议,卻偏偏與公主長得像,于是被迫代替她去往敵國和親师坎。 傳聞我的和親對象是個殘疾皇子恕酸,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

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