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