自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如果你還在為前端的布局和JS頭疼,你應(yīng)該看看這篇連載文章

開發(fā) 前端
新手如此入門React,我覺得你應(yīng)該從下面幾點(diǎn)開始入手學(xué)習(xí),今天給大家分享的是第一期,后續(xù)還會不斷的更新和實(shí)戰(zhàn)的分享。

新手如此入門React,我覺得你應(yīng)該從下面幾點(diǎn)開始入手學(xué)習(xí),今天給大家分享的是第一期,后續(xù)還會不斷的更新和實(shí)戰(zhàn)的分享。

[[359277]]

一,了解React

1.聲明式(React 使創(chuàng)建交互式 UI 變得輕而易舉。為你應(yīng)用的每一個(gè)狀態(tài)設(shè)計(jì)簡潔的視圖,當(dāng)數(shù)據(jù)改變時(shí) React 能有效地更新并正確地渲染組件。以聲明式編寫 UI,可以讓你的代碼更加可靠,且方便調(diào)試)

2.組件化(創(chuàng)建擁有各自狀態(tài)的組件,再由這些組件構(gòu)成更加復(fù)雜的 UI。組件邏輯使用 JavaScript 編寫而非模版,因此你可以輕松地在應(yīng)用中傳遞數(shù)據(jù)并使得狀態(tài)與 DOM 分離。

3.高效(React通過和DOM的模擬,很大限度的減少與DOM的交互)

4.JSX(javascript的拓展語言,建議在React開發(fā)中使用JSX)

5.靈活(React可以和已知的庫或者是框架完美的配合)

6.單向響應(yīng)的數(shù)據(jù)流(React 實(shí)現(xiàn)了單向響應(yīng)的數(shù)據(jù)流,從而減少了重復(fù)代碼,這也是它為什么比傳統(tǒng)數(shù)據(jù)綁定更簡單的原因)

無論你現(xiàn)在正在使用什么技術(shù)棧,你都可以隨時(shí)引入 React 來開發(fā)新特性,而不需要重寫現(xiàn)有代碼。React 還可以使用 Node 進(jìn)行服務(wù)器渲染,或使用 React Native 開發(fā)原生移動應(yīng)用。 

如果你還在為前端的布局和JS頭疼,你應(yīng)該看看這篇連載文章

二,第一個(gè)React實(shí)例

頁面如下

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="UTF-8" /> 
  5. <title>Hello React!</title> 
  6. <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script> 
  7. <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script> 
  8. <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script> 
  9. </head> 
  10. <body> 
  11.   
  12. <div id="example"></div> 
  13. <script type="text/babel"
  14. ReactDOM.render( 
  15.     <h1>Hello, world!</h1>, 
  16.     document.getElementById('example'
  17. ); 
  18. </script> 
  19.   
  20. </body> 
  21. </html> 

說明:

html的頁面引入三個(gè)庫,

  1. react.min.js(React的核心庫)
  2. react-dom.min.js(提供與DOM相關(guān)的功能)
  3. babel.min.js (ES6代碼轉(zhuǎn)換為ES5代碼,還支持JSX)

三,React的元素操作

元素在React應(yīng)用中最小的單位,主要作用就是為了描述屏幕上輸出的內(nèi)容。

  1. const = element = <h1>n你好,hello world</h1>  

不過我們在引入React的時(shí)候都是如下操作,

  1. <div id="example"></div>  

定義一個(gè)跟節(jié)點(diǎn),div的所有內(nèi)容都將屬于 example的 React DOM來管理,我們也把這個(gè)稱為“根”DOM節(jié)點(diǎn)。

下一步就是將React的元素, const渲染到DOM節(jié)點(diǎn)中,方法如下:

  1. const element = <h1>Hello, world!</h1>; 
  2. ReactDOM.render( 
  3.     element,# 元素 
  4.     document.getElementById('example') # 節(jié)點(diǎn) 
  5. ); 

說明:采用的方法為:ReactDOM.render(),此方法的兩個(gè)重要點(diǎn)就是 元素和節(jié)點(diǎn)。

這個(gè)時(shí)候我們就會產(chǎn)生一個(gè)問題,我們需要在同一個(gè)節(jié)點(diǎn)顯示多個(gè)元素該怎么辦?

其實(shí)在React的特性中,元素都是不可改變的,但是我們可以通過更新的方式來達(dá)到我們需要實(shí)現(xiàn)的目的,比如重新創(chuàng)建一個(gè)元素再渲染到同一個(gè)節(jié)點(diǎn),這樣元素的內(nèi)容就更新了。

  1.   const element = ( 
  2.     <div> 
  3.       <h1>Hello, world!</h1> 
  4.       <h2>我是前端工程師小A.</h2> 
  5.     </div> 
  6.   ); 
  7.   ReactDOM.render( 
  8.     element, 
  9.     document.getElementById('example'
  10.   ); 

空口無憑,我們可以通過一個(gè)實(shí)際例子來總結(jié)React的第一章學(xué)習(xí)

  1. <!DoCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="UTF-8" /> 
  5. <title>Hello React!</title> 
  6. <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script> 
  7. <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script> 
  8. <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script> 
  9. </head> 
  10. <body> 
  11. <div id="example"></div> 
  12. <script type="text/babel"
  13. function tick() { 
  14.   const element = ( 
  15.     <div> 
  16.       <h1>Hello, world!</h1> 
  17.       <h2>現(xiàn)在是 {new Date().toLocaleTimeString()}.</h2> 
  18.     </div> 
  19.   ); 
  20.   ReactDOM.render( 
  21.     element, 
  22.     document.getElementById('example'
  23.   ); 
  24. setInterval(tick, 1000); 
  25. </script> 
  26. </body> 
  27. </html> 
  28. </html> 

怎么樣?是不是感覺React很簡單,當(dāng)然通過一個(gè)簡單的hello world 還真的看不出什么東西,但是我們可以明顯的感覺到React更加的注重js的編寫,所有可以用js實(shí)現(xiàn)的就不用再去“麻煩”html,高效的DOM就是最好的一個(gè)例子。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2020-01-20 14:30:39

HTTP概念標(biāo)頭

2015-11-10 09:17:29

重構(gòu)程序員代碼

2015-10-12 17:11:34

老板重構(gòu)系統(tǒng)

2020-10-22 07:44:03

Tomcat調(diào)優(yōu)JVM

2015-09-16 09:21:12

移動云技術(shù)數(shù)據(jù)管理

2019-12-19 17:00:01

Java線程

2021-07-13 12:21:34

PythonRPC通信

2019-12-25 10:45:30

Java悲觀鎖

2025-03-10 00:17:00

2020-11-17 07:43:24

互聯(lián)網(wǎng)MVC服務(wù)類

2015-07-09 11:32:26

AWSIaaS云計(jì)算

2021-04-01 14:04:45

安全趨勢首席信息安全官勒索軟件

2015-12-29 13:53:14

BeeCloud云計(jì)算支付

2015-07-14 10:11:48

前端框架語言

2018-09-24 09:15:12

數(shù)據(jù)倉庫大數(shù)據(jù)

2019-01-30 13:44:34

JVM內(nèi)存服務(wù)器

2022-02-23 14:18:53

If-Else入?yún)?/a>接口

2021-06-10 10:33:22

Jenkins持續(xù)集成工具自動化

2019-09-02 08:08:30

緩存HTTP數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號