亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

React學習札記

2019-11-09 19:00:16
字體:
來源:轉載
供稿:網友

一、React是什么?

React是一個由Facebook于2013年5月開源的庫,采用MVC模式。而React它最初只是Facebook的一個內部項目使用的框架,由于它的設計思想獨特,性能出眾,代碼邏輯簡單,可以說優于市面上流行的基他javaScript MVC框架,因此,越來越多的人開始關注并使用React,從而也使得React變成了時下最熱門的前端框架。 由它衍生的React Native項目當前也變得火熱起來,一時間使得從事Android與IOS開發的同學擔心自己在不久的將來可能會丟了飯碗,因為React Native是一種用寫Web App的方式去寫Native App。那樣同一組人就只需要寫一次界面,就可以運行在Android,IOS,PC等各個端。

React

二、React怎么用?

$2.1、安裝

由于React是一個庫,得先進行依賴,React的依賴有3種,

一種是直接下載解壓使用

你可以在官網 http://reactjs.cn/react/downloads.html 下載最新版。然后解壓到指定目錄下,并 在< script src=”“/>引用路徑里面指定react.js,react-dom.js的路徑。

一種是使用內容分發網絡(CDN)

<script src="https://npmcdn.com/react@15.3.1/dist/react.min.js"></script><script src="https://npmcdn.com/react-dom@15.3.1/dist/react-dom.min.js"></script>

注: 上面使用的是.min文件,即壓縮文件,這個是生產環境的,開發者看不到源碼。 當然,便于調試,我們可以使用未經壓縮的文件,比如:

<script src="https://npmcdn.com/react@15.3.1/dist/react.js"></script><script src="https://npmcdn.com/react-dom@15.3.1/dist/react-dom.js"></script>

上面的react.js與react-dom.js兩者是必須要的。其中react.js是React的核心庫,react-dom.js提供與DOM操作相關的功能。除此之外我們還會引入browser.js庫:用于將JSX語法轉化為Javascript語法。

另一種就是用npm命令來安裝React:

$ npm install react -g --save$ npm install react-dom -g --save

全局安裝React,–save是將包添加至package.json文件(*這個文件是調用npm init 命令自動生成的)

$2.2、使用示例

<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>Hello React!</title> <script src="https://npmcdn.com/react@15.3.1/dist/react.js"></script> <script src="https://npmcdn.com/react-dom@15.3.1/dist/react-dom.js"></script> <script src="http://static.runoob.com/assets/react/browser.js"></script> </head> <body> <div id="example"></div> <!-- 如果使用JSX,則type應為text/babel--> <script type="text/babel"> <!-- 渲染方法--> React.render( <!-- JSX語法:HTML標簽直接寫在JavaScript中,不加任何引號--> <h1>Hello, world!</h1>, document.getElementById('example') ); </script> </body></html>

$2.3、組件式開發

組件式開發的模型以及它的概念,這里不再贅述。在JavaScript中,對模塊化或組件式開發,目前非常流行的一個庫是require.js。它有以下優點:

可以實現js文件的異步加載,避免了網頁因加載過多的js文件而失去響應;用于管理模塊之間的依賴性,便于代碼的編寫和維護。

如果想要依賴某個模塊時,只需調用require()方法即可,返回這個組件的對象。如:

//注意,定義的這個ComponentName組件名首字母必須大寫。var ComponentName = require('../common/js/Test.js');

組件式開發的核心思想是,一個組件為一個js文件。 在React里面,可以通過React.createClass({})方法來創建一個組件,這個方法里面{}實現一系列的接口,其中render:function(){};接口是必須實現的。當需要關注React的生命周期時,其與各生命周期相關的接口就得實現。比如:

//sate狀態初始化getInitialState:function(){ return { open:false, online:true };},//當state狀態改變時調用componentDidUpdate:function(){ //todo },//組件掛載完畢時調用componentDidMount:function(){ //todo},//render是必須要實現的方法//當調用React.render(<組件/>,document.getElementById('Root'))方法時,該方法就會被回調render:function(){ return ( <div>測試渲染</div> );}

同時,在這個組件里面,自己也可以封裝一些方法,在render里面來調用。

組件作為一個對象,也可以理解成一個DOM節點,因為它最終在渲染的時候也會加入到HTML文檔中,但它又不是真正的DOM節點,而是一種數據結構,只有在組件被掛載到DOM以后,才會變成真正的DOM節點,因此,組件也被稱為虛擬DOM。

同時組件作為一個對象,它有自己的生命周期,而其生命周期可以分成三個狀態: - Mounting:已經插入了真實的DOM - Updating:正在被重新渲染 - Unmounting:已經移出真實的DOM

除了Unmounting狀態只有一種處理函數外,其它每個狀態都有兩種處理函數,will函數在進入狀態之前調用,did函數在進入狀態后調用。比如: - componentWillMount():將要掛載組件; - componentDidMount(): 組件掛載成功;

此外,React還提供兩種特殊的處理函數: - componentWillReceivePRops(object nextProps):已掛載成功的組件在收到新的參數時回調 - shouldComponentUpdate(object nextProps,object nextState):當組件需要重新渲染時回調。

組件即對象,因此,組件有相應的屬性,我們可通過this.props來獲取當前組件對象的指定屬性。

var HelloClass = React.creatClass({ render:function(){ return ( //讀取組件的屬性,這個名字是隨便取的。 <h1>隨便取的屬性名:<font color='red'>{this.props.sunny}</font></h1> ); }});React.render(<HelloClass sunny="我是sunny"/>,document.body);

如圖:

結果

像其它編程語言一樣,有時我們需要指定變量的類型。而在React里面,由于組件的屬性可以接受字符串、對象、函數等任意值。這時,為了對使用者進行約束,我們也可以指定屬性的類型,這時就要用到PropTypes,eg:

var PropesTest = React.createClass({ //定義兩個屬性,在引用該組件時,如果用到這兩個屬性,則值的類型必須符合給定的類型, //否則會報錯。 propTypes:{ name:React.PropTypes.string.isRequired, content:React.PropTypes.string.isRequired, }, render:function(){ return ( <h1>名字:{this.props.name}+"/n內容:"+{this.props.content}</h1> ); }});//情況一:React.render(<PropesTest name=1111 content="內容"/>,document.getElementById("example"));//情況二:React.render(<PropesTest name="我是**" content="哈哈"/>,document.getElementById("example"));

結果如下:

情況一:錯誤

情況二:

成功

三、注意事項

React是ReactDOM的升級版本;React創建組件時,render方法必須實現;在使用React前,必須安裝或本地依賴或CDN依賴 react庫在使用組件時,如果給多個屬性賦值,中間不用逗號隔開
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩久久久久| 欧美国产视频日韩| 日韩在线观看成人| 日韩a**站在线观看| 国产在线观看一区二区三区| 亚洲免费高清视频| 奇米成人av国产一区二区三区| 欧美激情奇米色| 国产区亚洲区欧美区| 91精品国产91久久久| 亚洲人a成www在线影院| 欧美老女人性生活| 日本久久久久久久久久久| 九九热这里只有精品6| 久久久精品在线| 日韩精品视频中文在线观看| 亚洲一区中文字幕在线观看| 亚洲国产精品va在线| 亚洲伊人第一页| 7m第一福利500精品视频| 亚洲性无码av在线| 亚洲美女福利视频网站| 久久精品国产久精国产思思| 国产深夜精品福利| 国产精品美女av| 成人免费淫片视频软件| 久久国产精品亚洲| 久久久av电影| 深夜福利日韩在线看| 欧美激情视频一区| 国产精品高潮呻吟久久av黑人| 伊人久久久久久久久久| 国产精品久久99久久| 亚洲自拍中文字幕| 成人日韩在线电影| 色综合久综合久久综合久鬼88| 亚洲欧美资源在线| 亚洲国产精品久久久久久| 日韩最新中文字幕电影免费看| 高清欧美一区二区三区| 成人激情免费在线| 国产精品极品美女粉嫩高清在线| 懂色av一区二区三区| 午夜欧美不卡精品aaaaa| 亚洲国产另类久久精品| 成人97在线观看视频| 日韩a**站在线观看| 国产精品欧美日韩| 国产一区二区在线免费| 国产精品免费久久久久久| 欧美激情亚洲自拍| 91九色综合久久| 国产精品久久久久久久久久新婚| 日韩在线免费高清视频| 国产成人jvid在线播放| 国产亚洲精品久久久久久牛牛| 91中文精品字幕在线视频| 国产精品com| 欧美在线视频播放| 日韩黄在线观看| 亚洲天天在线日亚洲洲精| 欧美一级视频免费在线观看| 久久精品99久久香蕉国产色戒| 九九热视频这里只有精品| 国产精品揄拍500视频| 7777精品视频| 久久亚洲精品小早川怜子66| 久久久久久久成人| 久久久精品国产一区二区| 欧美小视频在线观看| 日韩久久免费电影| 久久久久久久久久久亚洲| 国产亚洲成精品久久| 91在线色戒在线| 69av视频在线播放| 国产精品无av码在线观看| 96精品久久久久中文字幕| 欧美www在线| 不卡在线观看电视剧完整版| 精品久久久久久久久久ntr影视| 日本高清不卡的在线| 亚洲欧洲午夜一线一品| 一区二区成人精品| 中文国产成人精品久久一| 欧美电影在线观看完整版| 在线视频国产日韩| 久久欧美在线电影| 欧美日韩一二三四五区| 一区二区欧美亚洲| 国产欧美在线视频| 日韩电影中文字幕在线| 91在线免费视频| 日韩日本欧美亚洲| 成人网址在线观看| 国产91精品不卡视频| 成人福利视频在线观看| 亚洲精品久久久久久久久久久久| 国产亚洲精品综合一区91| 最新亚洲国产精品| 777国产偷窥盗摄精品视频| 97香蕉超级碰碰久久免费软件| 国产成人中文字幕| 国产精品高潮呻吟视频| 91精品国产高清久久久久久| 亚洲毛片在线免费观看| 欧美第一淫aaasss性| 91日本视频在线| 国产亚洲精品激情久久| 色综合色综合久久综合频道88| 欧美成人在线免费视频| 亚洲视频在线观看免费| 亚洲护士老师的毛茸茸最新章节| 精品视频一区在线视频| 91九色精品视频| 97人洗澡人人免费公开视频碰碰碰| 国外成人在线直播| 日韩av男人的天堂| 国产黑人绿帽在线第一区| 一区二区成人精品| 欧美黑人一级爽快片淫片高清| 国产综合在线观看视频| 日韩亚洲在线观看| 欧美国产日韩在线| 国产精品91免费在线| 日韩精品在线视频观看| 日本久久久a级免费| 国产精品视频26uuu| 欧美日韩国产综合视频在线观看中文| 久久久精品免费视频| 国产精品视频地址| 日韩福利伦理影院免费| 成人黄色av免费在线观看| 国产亚洲精品美女| 91久久精品国产91久久性色| 亚洲free性xxxx护士白浆| 亚洲性xxxx| 国产福利视频一区二区| 一本色道久久88亚洲综合88| 日本电影亚洲天堂| 欧美裸体xxxx| 91社影院在线观看| 国产91精品久久久久久| 国产精品一区二区久久精品| 欧美夫妻性生活视频| 国产不卡av在线免费观看| 深夜福利一区二区| 欧美亚洲另类视频| 久久精品国产欧美亚洲人人爽| 一区二区欧美激情| 欧美在线观看日本一区| 美女性感视频久久久| 欧美日韩国产综合视频在线观看中文| 美女av一区二区| 欧美亚洲第一页| 欧美亚洲另类激情另类| 欧美大片在线影院| 国产美女精彩久久| 中文字幕日韩精品有码视频| 国产综合在线看| 国产97人人超碰caoprom| 亚洲第一区第二区| 91精品国产777在线观看| 欧美日韩aaaa| 欧美日韩亚洲视频一区|