摘要:將模板語(yǔ)言轉(zhuǎn)為語(yǔ)言,并插入組件組件類第一個(gè)字母必須大寫對(duì)象屬性與組件屬性一一對(duì)應(yīng)。是例外,它表示組件的所有節(jié)點(diǎn)組件的屬性可以接受任意值。需要一種驗(yàn)證機(jī)制,驗(yàn)證別人使用組件時(shí)提供的參數(shù)是否合法獲取真實(shí)節(jié)點(diǎn)組件的是。
初始化
引入三個(gè)script:
第一個(gè)是React的核心代碼,第二react-dom.js是React里面操作DOM的部分,第三個(gè)browser.js將JSX轉(zhuǎn)為Javascript語(yǔ)法。
ReactDOM.render將模板語(yǔ)言轉(zhuǎn)為HTML語(yǔ)言,并插入DOM
ReactDOM.render(組件Test, document.body );
組件類第一個(gè)字母必須大寫
var Hello = React.createClass({ render: function(){ returnthis.props.childrenHello ,{this.props.name}
} }) ReactDOM.render(, document.body )
this.props對(duì)象屬性與組件屬性一一對(duì)應(yīng)。this.props.children是例外,它表示組件的所有節(jié)點(diǎn)
var NotesList = React.createClass({ render: function(){ return (PropTypes{ React.children.map(this.props.children, function(child){ return
); } }); ReactDOM.render(- {child}
}) }Hello world , document.body );
組件的屬性可以接受任意值。需要一種驗(yàn)證機(jī)制,驗(yàn)證別人使用組件時(shí)提供的參數(shù)是否合法
var Title = React.createClass({ propTypes: { title: React.propTypes.string.isRequired, }, render: function(){ return獲取真實(shí)DOM節(jié)點(diǎn){this.props.title}
} });
組件的是virtual DOM。需要獲取真實(shí)DOM節(jié)點(diǎn)時(shí),要用到ref屬性
var Component = React.createClass({ handleClick: function(){ this.refs.myTextInput.focus(); }, render: function(){ return (this.state) } }) ReactDOM.render(, document.body )
React的狀態(tài)機(jī),狀態(tài)的變化可以出發(fā)重新渲染UI
var LikeButton = React.createClass({ getInitialState: function(){ return {liked: false}; }, handleClick: funtion(event){ this.setState({liked: !this.state.liked}); }, render: function(){ var text = this.state.liked ? "like" : "dont like"; return(組件的生命周期) } }) ReactDOM.render(
, document.body )
組件的生命周期有三個(gè)狀態(tài):
Mounting: 已插入真實(shí)DOM Updating: 正在被重新渲染 Unmounting: 已移出真實(shí)DOM
React為每個(gè)狀態(tài)提供兩種處理函數(shù),will在進(jìn)入狀態(tài)前調(diào)用,did函數(shù)在進(jìn)入狀態(tài)后調(diào)用,共五中處理函數(shù):
componentWillMount() componentDidMount() componentWillUpdate(object nextProps, object nextState) componentDidUpdate(object prevProps, object preState) componentWillUnount()
還有兩種特殊狀態(tài)的處理函數(shù):
componentWillReceiveProps(object nextProps): 已加載組件收到新的參數(shù)時(shí)調(diào)用 shouldComponentUpdate(object nextProps, object nextState): 組件判斷是否重新渲染時(shí)調(diào)用
Demo:
var Hello = React.createClass({ getInitialState: function(){ return { opacity: 1.0 } }, componentDidMount: function(){ this.timer = setInterval(function(){ var opacity = this.state.opacity; opacity += 0.05; if(opacity < 0.1){ opacity = 1.0; } this.setState({ opacity: opacity }) }.bind(this), 100) }, render: function(){ return (Hello {this.props.name}) } }); ReactDOM.render(, document.body )
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/79875.html
摘要:在開發(fā)項(xiàng)目時(shí),可以先用網(wǎng)頁(yè)的形式開發(fā)項(xiàng)目,等到網(wǎng)頁(yè)項(xiàng)目部分差不多完成后,再注入中,開發(fā)網(wǎng)頁(yè)項(xiàng)目部分和窗體部分的交互在中使用后,將不會(huì)打包有關(guān)的代碼 electron是一兩年前挺火的一個(gè)框架本質(zhì)上是一個(gè)瀏覽器,但是集成了很多windows系統(tǒng)的功能,讓前端開發(fā)也可以直接操作windows的窗體,做成一個(gè)實(shí)打?qū)嵉淖烂孳浖?團(tuán)隊(duì)主要的技術(shù)棧是react,所以考慮用react開發(fā),方便維護(hù)。 ...
摘要:新聞第期新聞中更好的列表視圖官方博客近日發(fā)表了新的列表組件的消息,三月份的候選版本的中,加入了三種新的與組件,可以針對(duì)不同情況需求而使用,這三個(gè)新組件的數(shù)據(jù)來源,都可以對(duì)外部的數(shù)據(jù)流框架或進(jìn)行搭配使用。目前中的類似功能仍然在草案中。 ReactJS新聞 第021期 (2017.03.26) 新聞 React Native中更好的List Views(列表視圖) React Naive...
摘要:我們專注移動(dòng)體育領(lǐng)域的應(yīng)用開發(fā),倡導(dǎo)開放共享的精神,不模仿,不跟風(fēng),只做酷的產(chǎn)品。這就是正在做的事情,我們希望通過科技驅(qū)動(dòng),讓更多的人熱愛健身,喜歡運(yùn)動(dòng)。 序 因?yàn)樽约翰淮笙矚g喜歡用手機(jī),所以當(dāng)在手機(jī)上看到有些應(yīng)用只能在手機(jī)上使用時(shí)覺得好別扭,但我本身也不是寫移動(dòng)App的,只是會(huì)寫點(diǎn) js,都說js啥都能干,那我就用它干! 關(guān)于 Keep Keep 是一個(gè)熱愛運(yùn)動(dòng)的年輕團(tuán)隊(duì),同時(shí)也是一...
摘要:下一步我們將結(jié)果輸出到文件。這是我們用編寫的第一個(gè)非常簡(jiǎn)單的組建。使用將創(chuàng)建的組建導(dǎo)出以便在其它地方能夠正常導(dǎo)入使用。 這是React和ECMAScript6結(jié)合使用系列文章的第一篇。 本文出自從零到壹全棧部落 下面是所有系列文章章節(jié)的鏈接: React 、 ES6 - 介紹(第一部分) React類、ES7屬性初始化(第二部分) React類,方法綁定(第三部分) ES6中Reac...
閱讀 1698·2023-04-25 16:45
閱讀 2097·2021-11-17 09:33
閱讀 2470·2021-09-27 14:04
閱讀 989·2019-08-30 15:44
閱讀 2764·2019-08-30 14:24
閱讀 3574·2019-08-30 13:59
閱讀 1781·2019-08-29 17:00
閱讀 975·2019-08-29 15:33