精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

堅實的React基礎:初學者指南

開發 前端
在過去的幾個月里,我一直在使用React和React-Native。我已經發布了兩個作為產品的應用, Kiven Aa(React)和Pollen Chat(React Native)。當我開始學習React時,我找了一些不僅僅是教我如何用 React 寫應用的東西(一個博客,一個視頻,一個課程,等等),我也想讓它幫我做好面試準備。

[[247725]]

在過去的幾個月里,我一直在使用 React 和 React-Native。我已經發布了兩個作為產品的應用, Kiven Aa(React)和 Pollen Chat(React Native)。當我開始學習 React 時,我找了一些不僅僅是教我如何用 React 寫應用的東西(一個博客,一個視頻,一個課程,等等),我也想讓它幫我做好面試準備。

我發現的大部分資料都集中在某一單一方面上。所以,這篇文章針對的是那些希望理論與實踐***結合的觀眾。我會告訴你一些理論,以便你了解幕后發生的事情,然后我會向你展示如何編寫一些 React.js 代碼。

如果你更喜歡視頻形式,我在 [YouTube][https://youtu.be/WJ6PgzI16I4] 上傳了整個課程,請去看看。

讓我們開始……

React.js 是一個用于構建用戶界面的 JavaScript 庫

你可以構建各種單頁應用程序。例如,你希望在用戶界面上實時顯示變化的聊天軟件和電子商務門戶。

一切都是組件

React 應用由組件組成,數量繁多且互相嵌套。你或許會問:”可什么是組件呢?“

組件是可重用的代碼段,它定義了某些功能在 UI 上的外觀和行為。 比如,按鈕就是一個組件。

讓我們看看下面的計算器,當你嘗試計算 2 + 2 = 4 -1 = 3(簡單的數學題)時,你會在 Google 上看到這個計算器。

紅色標記表示組件

紅色標記表示組件

如上圖所示,這個計算器有很多區域,比如展示窗口和數字鍵盤。所有這些都可以是許多單獨的組件或一個巨大的組件。這取決于在 React 中分解和抽象出事物的程度。你為所有這些組件分別編寫代碼,然后合并這些組件到一個容器中,而這個容器又是一個 React 組件。這樣你就可以創建可重用的組件,最終的應用將是一組協同工作的單獨組件。

以下是一個你踐行了以上原則并可以用 React 編寫計算器的方法。

  1. <Calculator>
  2. <DisplayWindow />
  3. <NumPad>
  4. <Key number={1}/>
  5. <Key number={2}/>
  6. .
  7. .
  8. .
  9. <Key number={9}/>
  10. </NumPad>
  11. </Calculator>

沒錯!它看起來像HTML代碼,然而并不是。我們將在后面的部分中詳細探討它。

設置我們的 Playground

這篇教程專注于 React 的基礎部分。它沒有偏向 Web 或 React Native(開發移動應用)。所以,我們會用一個在線編輯器,這樣可以在學習 React 能做什么之前避免 web 或 native 的具體配置。

我已經為讀者在 codepen.io 設置好了開發環境。只需點開該鏈接并且閱讀 HTML 和 JavaScript 中的所有注釋。

控制組件

我們已經了解到 React 應用是各種組件的集合,結構為嵌套樹。因此,我們需要某種機制來將數據從一個組件傳遞到另一個組件。

進入 “props”

我們可以使用 props 對象將任意數據傳遞給我們的組件。 React 中的每個組件都會獲取 props 對象。在學習如何使用 props 之前,讓我們學習函數式組件。

a) 函數式組件

在 React 中,一個函數式組件通過 props 對象使用你傳遞給它的任意數據。它返回一個對象,該對象描述了 React 應渲染的 UI。函數式組件也稱為無狀態組件。

讓我們編寫***個函數式組件。

  1. function Hello(props) {
  2. return <div>{props.name}</div>
  3. }

就這么簡單。我們只是將 props 作為參數傳遞給了一個普通的 JavaScript 函數并且有返回值。嗯?返回了什么?那個 <div>{props.name}</div>。它是 JSX(JavaScript Extended)。我們將在后面的部分中詳細了解它。

上面這個函數將在瀏覽器中渲染出以下 HTML。

  1. <!-- If the "props" object is: {name: 'rajat'} -->
  2. <div>
  3. rajat
  4. </div>

閱讀以下有關 JSX 的部分,這一部分解釋了如何從我們的 JSX 代碼中得到這段 HTML 。

如何在 React 應用中使用這個函數式組件? 很高興你問了! 它就像下面這么簡單。

  1. <Hello name='rajat' age={26}/>

屬性 name 在上面的代碼中變成了 Hello 組件里的 props.name ,屬性 age 變成了 props.age

記住! 你可以將一個 React 組件嵌套在其他 React 組件中。

讓我們在 codepen playground 使用 Hello 組件。用我們的 Hello 組件替換 ReactDOM.render() 中的 div,并在底部窗口中查看更改。

  1. function Hello(props) {
  2. return <div>{props.name}</div>
  3. }
  4.  
  5. ReactDOM.render(<Hello name="rajat"/>, document.getElementById('root'));

但是如果你的組件有一些內部狀態怎么辦?例如,像下面的計數器組件一樣,它有一個內部計數變量,它在 +- 鍵按下時發生變化。

具有內部狀態的 React 組件

具有內部狀態的 React 組件

b) 基于類的組件

基于類的組件有一個額外屬性 state ,你可以用它存放組件的私有數據。我們可以用 class 表示法重寫我們的 Hello 。由于這些組件具有狀態,因此這些組件也稱為有狀態組件。

  1. class Counter extends React.Component {
  2. // this method should be present in your component
  3. render() {
  4. return (
  5. <div>
  6. {this.props.name}
  7. </div>
  8. );
  9. }
  10. }

我們繼承了 React 庫的 React.Component 類以在 React 中創建基于類的組件。在這里了解更多有關 JavaScript 類的東西。

render() 方法必須存在于你的類中,因為 React 會查找此方法,用以了解它應在屏幕上渲染的 UI。為了使用這種內部狀態,我們首先要在組件

要使用這種內部狀態,我們首先必須按以下方式初始化組件類的構造函數中的狀態對象。

  1. class Counter extends React.Component {
  2. constructor() {
  3. super();
  4. // define the internal state of the component
  5. this.state = {name: 'rajat'}
  6. }
  7. render() {
  8. return (
  9. <div>
  10. {this.state.name}
  11. </div>
  12. );
  13. }
  14. }
  15.  
  16. // Usage:
  17. // In your react app: <Counter />

類似地,可以使用 this.props 對象在我們基于類的組件內訪問 props

要設置 state,請使用 React.ComponentsetState()。 在本教程的***一部分中,我們將看到一個這樣的例子。

提示:永遠不要在 render() 函數中調用 setState(),因為 setState 會導致組件重新渲染,這將導致***循環。

基于類的組件具有可選屬性 “state”。

基于類的組件具有可選屬性 “state”。

除了 state 以外,基于類的組件有一些聲明周期方法比如 componentWillMount()。你可以利用這些去做初始化 state這樣的事, 可是那將超出這篇文章的范疇。

JSX

JSX 是 JavaScript Extended 的縮寫,它是一種編寫 React 組件的方法。使用 JSX,你可以在類 XML 標簽中獲得 JavaScript 的全部力量。

你把 JavaScript 表達式放在 {} 里。下面是一些有效的 JSX 例子。

  1. <button disabled={true}>Press me!</button>
  2. <button disabled={true}>Press me {3+1} times!</button>;
  3. <div className='container'><Hello /></div>

它的工作方式是你編寫 JSX 來描述你的 UI 應該是什么樣子。像 Babel 這樣的轉碼器將這些代碼轉換為一堆 React.createElement() 調用。然后,React 庫使用這些 React.createElement() 調用來構造 DOM 元素的樹狀結構。對于 React 的網頁視圖或 React Native 的 Native 視圖,它將保存在內存中。

React 接著會計算它如何在展示給用戶的 UI 的內存中有效地模仿這個樹。此過程稱為 reconciliation。完成計算后,React 會對屏幕上的真正 UI 進行更改。

React 如何將你的 JSX 轉化為描述應用 UI 的樹。

React 如何將你的 JSX 轉化為描述應用 UI 的樹。

你可以使用 Babel 的在線 REPL 查看當你寫一些 JSX 的時候,React 的真正輸出。

使用Babel REPL 轉換 JSX 為普通 JavaScript

使用Babel REPL 轉換 JSX 為普通 JavaScript

由于 JSX 只是 React.createElement() 調用的語法糖,因此可以在沒有 JSX 的情況下使用 React。

現在我們了解了所有的概念,所以我們已經準備好編寫我們之前看到之前的 GIF 圖中的計數器組件。

代碼如下,我希望你已經知道了如何在我們的 playground 上渲染它。

  1. class Counter extends React.Component {
  2. constructor(props) {
  3. super(props);
  4. this.state = {count: this.props.start || 0}
  5. // the following bindings are necessary to make `this` work in the callback
  6. this.inc = this.inc.bind(this);
  7. this.dec = this.dec.bind(this);
  8. }
  9. inc() {
  10. this.setState({
  11. count: this.state.count + 1
  12. });
  13. }
  14. dec() {
  15. this.setState({
  16. count: this.state.count - 1
  17. });
  18. }
  19. render() {
  20. return (
  21. <div>
  22. <button onClick={this.inc}>+</button>
  23. <button onClick={this.dec}>-</button>
  24. <div>{this.state.count}</div>
  25. </div>
  26. );
  27. }
  28. }

以下是關于上述代碼的一些重點。

  1. JSX 使用 駝峰命名 ,所以 button 的 屬性是 onClick,不是我們在HTML中用的 onclick
  2. 綁定 this 是必要的,以便在回調時工作。 請參閱上面代碼中的第8行和第9行。

最終的交互式代碼位于此處

有了這個,我們已經到了 React 速成課程的結束。我希望我已經闡明了 React 如何工作,以及如何使用 React 來構建更大的應用程序,使用更小和可重用的組件。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-07-30 14:56:42

ReactJavaScript開發

2022-04-24 15:21:01

MarkdownHTML

2023-02-19 15:31:09

架構軟件開發代碼

2010-06-13 11:13:38

UML初學者指南

2022-07-22 13:14:57

TypeScript指南

2023-10-14 17:21:53

Scala編程

2022-10-10 15:28:45

負載均衡

2022-03-28 09:52:42

JavaScript語言

2023-07-03 15:05:07

預測分析大數據

2021-05-10 08:50:32

網絡管理網絡網絡性能

2023-07-28 07:31:52

JavaScriptasyncawait

2023-10-16 07:04:03

2022-09-05 15:36:39

Linux日志記錄syslogd

2010-08-26 15:47:09

vsftpd安裝

2012-03-14 10:56:23

web app

2023-02-10 08:37:28

2011-07-05 13:59:23

XML

2023-04-25 16:47:48

Kubernetes可觀測性Prometheus

2021-05-06 09:00:00

JavaScript靜態代碼開發

2024-12-25 08:00:00

機器學習ML管道人工智能
點贊
收藏

51CTO技術棧公眾號

麻豆一区在线观看| 久久久久久久av麻豆果冻| 成人免费在线播放视频| 久久久久国色av免费观看性色 | 老司机免费视频一区二区| 欧美成人video| 在线观看日韩羞羞视频| www五月天com| 北条麻妃一区二区三区在线| 亚洲欧美日韩国产成人精品影院 | 福利一区二区| 国产三级精品在线| 91爱视频在线| 日韩大尺度视频| 国产精品一卡二卡三卡| 久久99国产精品视频| 亚洲一区二区不卡免费| 91深夜福利视频| 九九热视频在线免费观看| 免费污视频在线一区| 久久久久久亚洲综合| 成人在线精品视频| 亚洲欧美精品久久| 婷婷国产精品| 在线视频观看一区| 人禽交欧美网站免费| 黄色激情视频在线观看| 加勒比久久高清| 午夜精品在线视频一区| 精品国产乱码久久久久久蜜柚 | 在线观看三级网站| 国产精品美女久久久| 日韩高清精品免费观看| 精品国产乱码久久久久久108| 日本久久精品电影| 高清日韩欧美| 免费又黄又爽又猛大片午夜| 国产写真视频在线观看| 9色porny自拍视频一区二区| 欧美国产乱视频| 国产成人精品一区二区在线小狼 | 亚洲日本丝袜连裤袜办公室| 国产剧情日韩欧美| 欧洲美女女同性互添| 伊人久久大香线蕉综合网站 | 中国女人真人一级毛片| 日韩欧美在线中字| 欧美人妇做爰xxxⅹ性高电影 | 91九色视频导航| 成人免费一区二区三区| 99久久亚洲精品蜜臀| 777亚洲妇女| 久久这里只有精品18| 天天爱天天干天天操| 肉丝袜脚交视频一区二区| zzjj国产精品一区二区| 久久久久无码精品| 少妇视频一区| 欧美国产日韩a欧美在线观看| 国产色婷婷国产综合在线理论片a| 日本天堂中文字幕| 亚洲精品亚洲人成在线| 日韩av网站大全| 色戒在线免费观看| 超清av在线| 国产女人18水真多18精品一级做 | 97av视频在线观看| 日本亚洲精品| 99久久精品国产麻豆演员表| 国产精品成人一区二区三区吃奶| 日韩影院一区二区| 免费看av成人| 一区二区黄色| 欧美色精品在线视频| 久久国产精品免费观看| 四虎精品成人免费网站| 精品亚洲成av人在线观看| 欧美另类xxx| 国产人妻大战黑人20p| 成人豆花视频| 色偷偷久久一区二区三区| 久久观看最新视频| a毛片不卡免费看片| 中文字幕一区二区三区不卡 | 69视频在线免费观看| 日本视频在线观看免费| 久色婷婷小香蕉久久| 99影视tv| 国产美女永久免费| 性色一区二区三区| 欧美疯狂xxxx大交乱88av| 久久久久久久黄色| 91精品国产成人观看| 亚洲精品视频二区| 国产污在线观看| 免费看日产一区二区三区 | 亚洲综合精品国产一区二区三区 | 午夜国产一区二区| 欧美激情视频网站| 日韩久久久久久久久久| 风流少妇一区二区| 成人国产精品一区| 国产视频在线一区| 久久一二三国产| 久久精品国产第一区二区三区最新章节 | 欧美日韩免费一区二区三区视频| 91av免费观看| 成人写真视频| 在线观看免费高清视频97| 免费的av网站| 欧美一级三级| 日韩精品极品视频| 我要看黄色一级片| 亚洲人metart人体| 伦伦影院午夜日韩欧美限制| 顶级黑人搡bbw搡bbbb搡| 99视频一区| 5566中文字幕一区二区| 国产xxxx在线观看| 国产一区不卡视频| 91免费看网站| 在线毛片网站| 樱桃国产成人精品视频| 日韩专区第三页| 黄色小说在线播放| 51精品久久久久久久蜜臀| 中文字幕av网址| 欧美日韩在线播放视频| 日韩在线观看免费高清完整版| 国产稀缺真实呦乱在线| 国产一区二区看久久| 亚洲ai欧洲av| 大片免费在线观看| 亚洲自拍偷拍图区| 欧美日韩黄色一级片| 僵尸再翻生在线观看| 色婷婷av一区二区三区软件| 国产一线在线观看| 一区二区三区在线| 成人免费福利在线| 日本免费在线视频| 欧美三区在线观看| 国产综合精品在线| 午夜在线一区| 久久综合一区| 免费在线你懂的| 一区二区三区四区国产精品| 亚洲精品综合在线观看| 国内精品免费| 欧美激情图片区| www.精品久久| 91视频国产资源| 在线视频一区观看| 欧美亚洲二区| 精品国产麻豆免费人成网站| 成年人网站免费在线观看| 国产精品美女| 日韩久久久久久久| 欧美人体视频xxxxx| 欧美性色xo影院| 久久久久久久久久久久久久久国产| 91免费精品国偷自产在线在线| 免费不卡欧美自拍视频| 久久99国产综合精品免费| 久久99久久99精品免视看婷婷| 国产美女精品在线观看| 2017亚洲天堂1024| 欧美日韩你懂得| 成人免费视频国产免费观看| 国产99久久久国产精品潘金| 日韩人妻无码精品久久久不卡| 精品成人自拍视频| 国产精品www网站| 好操啊在线观看免费视频| 日韩女优视频免费观看| av黄色在线免费观看| 日本美女一区二区| 久久99国产精品99久久| 国产日韩另类视频一区| 欧美电视剧在线看免费| 日韩三级视频在线播放| 韩国v欧美v日本v亚洲v| 欧美这里只有精品| 电影91久久久| 97香蕉超级碰碰久久免费的优势| 国产精品久久欧美久久一区| 久久久久久久久久电影| 日韩av片网站| 亚洲第一论坛sis| 国产精品精品国产| 羞羞的视频在线看| 欧美精选午夜久久久乱码6080| 国产精品一区二区在线免费观看| 91久久高清国语自产拍| 国产欧美丝袜| 日韩一级特黄| 97碰在线观看| 国产人成网在线播放va免费| 亚洲精品久久7777777| av资源吧首页| 丁香天五香天堂综合| 成人高清dvd| 国产欧美一区| 日本国产精品视频| 天堂视频中文在线| 欧美精品自拍偷拍| 99re这里只有精品在线| 久久综合狠狠综合久久综合88| 天堂av8在线| 久久天天综合| 视频一区在线免费观看| 懂色av一区二区| 91九色单男在线观看| 四虎影视4hu4虎成人| 91精品国产777在线观看| caopeng在线| 中文字幕不卡在线视频极品| 中文字幕有码视频| 性欧美疯狂xxxxbbbb| 成人免费视频网站入口::| 国产精品色在线观看| 欧美国产日韩另类| 视频一区欧美精品| 青青艹视频在线| 韩日成人在线| 久久国产主播精品| 成功精品影院| 亚洲在线免费视频| av老司机免费在线| 久久69精品久久久久久国产越南| 日本激情视频在线观看| 亚洲一级黄色av| 国产美女www爽爽爽视频| 日本精品一区二区三区高清 | 香蕉成人app免费看片| xxx欧美精品| 麻豆tv在线| 久久精品国产亚洲7777| 亚洲国产精品久久人人爱潘金莲| 亚洲成人av资源| 国产精品无码一区二区三区| 开心九九激情九九欧美日韩精美视频电影 | 亚洲图片88| 中文字幕日韩有码| 岛国视频免费在线观看| 欧美性猛交xxxx乱大交| 国产真实乱偷精品视频| 亚洲成av人**亚洲成av**| 中文在线观看免费网站| 福利一区福利二区微拍刺激| 亚洲女同二女同志奶水| 国产sm精品调教视频网站| 一级日本黄色片| 三级在线观看一区二区| 成年人黄色片视频| 亚洲精品网址| 久久视频免费在线| 精品白丝av| 在线观看日本一区| 欧美黄免费看| 亚洲精品9999| 巨人精品**| 快播日韩欧美| 第一会所sis001亚洲| 制服国产精品| 欧美天堂亚洲电影院在线观看| 日韩一区二区电影在线观看| 色777狠狠狠综合伊人| 国产精品久久成人免费观看| 国语自产精品视频在线看8查询8| 国产3p露脸普通话对白| 99re6这里只有精品| 精品久久蜜桃| 国产精品日韩精品中文字幕| 亚洲欧洲精品一区| 狠狠综合久久av一区二区老牛| 黄色网页免费在线观看| 日本不卡视频一二三区| 国产精品熟女一区二区不卡| av一区二区三区在线| 一级在线观看视频| 26uuu精品一区二区在线观看| a级在线免费观看| 亚洲精品视频在线| 久久久久99精品成人片我成大片| 欧美日韩大陆在线| 黄色一级a毛片| 日韩午夜激情av| 在线观看国产精品视频| 日韩视频在线永久播放| 欧美日本网站| 日韩精品中文在线观看| 成年女人的天堂在线| 欧美黑人巨大xxx极品| 亚洲不卡系列| 国产亚洲情侣一区二区无| 成人羞羞视频播放网站| 日韩小视频网站| 免费观看成人av| 91插插插插插插插插| 成人福利电影精品一区二区在线观看 | 久久综合激情网| 在线观看国产精品网站| 成人午夜视频一区二区播放| 色一区av在线| 欧美日韩xx| 欧美亚洲国产精品| 韩国成人漫画| 国产精品69av| 国产在线|日韩| 国产亚洲第一区| 91成人网在线观看| 国产一级做a爰片久久| 91在线国产福利| 国产精品成人av久久| 欧美人牲a欧美精品| 国产精品久久一区二区三区不卡| 国内精品久久久久久中文字幕| 白浆在线视频| av成人在线电影| 中文字幕一区二区三区久久网站| 国产又黄又猛又粗又爽的视频| 久久亚洲精品小早川怜子| 精品在线视频免费| 精品免费日韩av| 3d玉蒲团在线观看| 97国产一区二区精品久久呦| 电影一区二区三区久久免费观看| 深田咏美在线x99av| 久久精品1区| 天天干天天草天天| 国产亚洲成aⅴ人片在线观看| 国产在线视频99| 91精品国产综合久久婷婷香蕉 | 香蕉一区二区| 777777av| 男人的天堂久久精品| 欧美特级黄色录像| 色综合久久中文字幕| 日本电影一区二区在线观看 | 18+视频在线观看| 91免费高清视频| 欧美在线视屏| 麻豆av免费看| 亚洲va国产天堂va久久en| 人人妻人人澡人人爽精品日本| 亚洲视频一区二区三区| 色网站在线看| 国产精品自拍视频| 99久久99视频只有精品| 亚洲网中文字幕| 久久人人97超碰com| 天天干在线播放| 亚洲欧美一区二区三区四区 | 中文字幕日本不卡| 国产免费久久久| 欧美国产日韩免费| 久久午夜影院| 国产精品人人妻人人爽人人牛| 国产精品资源站在线| 国产中年熟女高潮大集合| 色老汉一区二区三区| 92国产在线视频| 91亚洲精华国产精华| 精品白丝av| 香蕉视频久久久| 欧美丰满一区二区免费视频| 性欧美videoshd高清| 国内一区二区三区在线视频| 欧美一级视频| 日本裸体美女视频| 精品sm捆绑视频| 三级成人在线| 大桥未久一区二区| 99精品国产视频| 国产精品 欧美在线| 群体交乱之放荡娇妻一区二区| 久章草在线视频| 国产一区在线观看视频| 天天干中文字幕| 日韩精品视频在线免费观看| 992tv国产精品成人影院| 免费成人深夜夜行网站视频| www.亚洲免费av| 一级特黄免费视频| 久久99精品视频一区97| 女厕嘘嘘一区二区在线播放 | 国产99精品视频| 丰满少妇xoxoxo视频| 欧美成年人网站| 亚洲深夜福利在线观看| 激情成人在线观看| 欧美性感美女h网站在线观看免费| 国产原创在线观看| 久久99精品国产99久久| 国产精品一二一区| 日韩黄色一级视频| 久久久久久香蕉网| 97久久视频| 丰满少妇一区二区三区|