這是我參與8月更文挑戰的第11天,活動詳情查看:8月更文挑戰html
React,用於構建用戶界面的 JavaScript 庫,只提供了 UI 層面的解決方案前端
遵循組件設計模式、聲明式編程範式和函數式編程概念,以使前端應用程序更高效vue
使用虛擬DOM
來有效地操做DOM
,遵循從高階組件到低階組件的單向數據流react
幫助咱們將界面成了各個獨立的小塊,每個塊就是組件,這些組件之間能夠組合、嵌套,構成總體頁面web
react
類組件使用一個名爲 render()
的方法或者函數組件return
,接收輸入的數據並返回須要展現的內容面試
class HelloMessage extends React.Component {
render() {
return (
<div> Hello {this.props.name} </div>
);
}
}
ReactDOM.render(
<HelloMessage name="Taylor" />,
document.getElementById('hello-example')
);
複製代碼
上述這種相似 XML
形式就是JSX
,最終會被babel
編譯爲合法的JS
語句調用編程
被傳入的數據可在組件中經過 this.props
在 render()
訪問設計模式
React
特性有不少,如:數組
着重介紹下聲明式編程及Component安全
聲明式編程是一種編程範式,它關注的是你要作什麼,而不是如何作
它表達邏輯而不顯式地定義步驟。這意味着咱們須要根據邏輯的計算來聲明要顯示的組件
如實現一個標記的地圖:
經過命令式建立地圖、建立標記、以及在地圖上添加的標記的步驟以下:
// 建立地圖
const map = new Map.map(document.getElementById('map'), {
zoom: 4,
center: {lat,lng}
});
// 建立標記
const marker = new Map.marker({
position: {lat, lng},
title: 'Hello Marker'
});
// 地圖上添加標記
marker.setMap(map);
複製代碼
而用React
實現上述功能則以下:
<Map zoom={4} center={lat, lng}>
<Marker position={lat, lng} title={'Hello Marker'}/>
</Map>
複製代碼
聲明式編程方式使得React
組件很容易使用,最終的代碼簡單易於維護
在React
中,一切皆爲組件。一般將應用程序的整個邏輯分解爲小的單個部分。 咱們將每一個單獨的部分稱爲組件
組件能夠是一個函數或者是一個類,接受數據輸入,處理它並返回在UI
中呈現的React
元素
函數式組件以下:
const Header = () => {
return(
<Jumbotron style={{backgroundColor:'orange'}}> <h1>TODO App</h1> </Jumbotron>
)
}
複製代碼
類組件(有狀態組件)以下:
class Dashboard extends React.Component {
constructor(props){
super(props);
this.state = {
}
}
render() {
return (
<div className="dashboard"> <ToDoForm /> <ToDolist /> </div>
);
}
}
複製代碼
一個組件該有的特色以下:
經過上面的初步瞭解,能夠感覺到React
存在的優點: