摘要:系列一初識系列二組件的和系列三組件的生命周期是推出的一個庫,它的口號就是用來創建用戶界面的庫,所以它只是和用戶界面打交道,可以把它看成中的視圖層。系列一初識系列二組件的和系列三組件的生命周期
React系列---React(一)初識React
React系列---React(二)組件的prop和state
React系列---React(三)組件的生命周期
React是Facebook推出的一個JavaScript庫,它的口號就是“用來創建用戶界面的JavaScript庫”,所以它只是和用戶界面打交道,可以把它看成MVC中的V(視圖)層。
React三大特性 組件React的一切基于組件。使用React,唯一要關心的就是構建組件。各個組件有各自的狀態,狀態變更時,會自動重新渲染組件。組件特性也是Web前端發展的趨勢。
一個Profile組件的例子:
// Profile.jsx import React from "react"; export default Class Profile extends React.Component { render() { return () } }Hi, I am {this.props.name}
其他組件中,可以像HTML標簽一樣引用它:
import Profile from "./profile"; export default function(props) { return (JSX) }
上面的render方法中,有一種直接把HTML嵌套在JS中的寫法,被稱作JSX。這種語法結合了JavaScript和HTML的優點,即可以像平常一樣使用HTML,也可以在里面嵌套JavaScript語法,運行時,Babel等工具會將JSX編譯成JavaScript語法。
用HTML這種語義化的方式代替寫JavaScript,總讓人愜意許多。
Virtual DOMReact的設計中,開發者基本上無需操縱實際的DOM節點,每個React組件都是用Virtual DOM渲染的,可以看成是一種用JavaScript實現的內存DOM抽象。React在Virtual DOM上實現了一個Diff算法,渲染組件時,會高效的找出變更的節點,刷新到實際DOM上。
理解React特性 理解Virtual DOMWeb頁面是由一個個HTML元素嵌套組合而成的。當使用JavaScript來描述這些元素時,這些元素可以簡單地被表示成純粹的JSON對象的。
比如現在需要描述一個按鈕(button),我們都知道,HTML語法如下:
其中包括了元素的類型和屬性。我們可以用這樣一個JSON對象去表達這個按鈕:
{ type: "button", props: { className: "btn btn-blue", children: { type: "em", props: { children: "Confirm" } } } }
這即是Virtual DOM的思想:將實際DOM節點抽象為內存中的JavaScript對象。
理解組件當然,我們可以很方便地封裝上述button元素,得到一種構建按鈕的公共方法:
const Button => ({ color, text }) { return { type: "button", props: { className: `btn btn-${color}`, children: { type: "em", props: { children: text, }, }, }, }; }
當我們要生成DOM元素中具體按鈕時,就可以調用Button({color:"blue", text:"Confirm"})來創建。
仔細思考這個過程可以發現,Button方法其實也可以作為元素存在(上面的Profile組件,就是這一回事),方法名對應了DOM元素類型,參數對應了DOM元素屬性,這樣構建的元素就是React的組件元素。JSON結構描述這個組件的話,大概是這樣:
{ type: Button, props: { color: "blue", children: "Confirm" } }
這也是React的核心思想之一。因為有公共的表達方法,我們就可以讓元素們彼此嵌套混合。這些層層封裝的React組件元素,最終遞歸渲染出完整的DOM樹。
React系列---React(一)初識React
React系列---React(二)組件的prop和state
React系列---React(三)組件的生命周期
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83601.html
摘要:組件裝載過程裝載過程依次調用的生命周期函數中每個類的構造函數,創造一個組件實例,當然會調用對應的構造函數。組件需要構造函數,是為了以下目的初始化,因為生命周期中任何函數都有可能訪問,構造函數是初始化的理想場所綁定成員函數的環境。 React系列---React(一)初識ReactReact系列---React(二)組件的prop和stateReact系列---之React(三)組件的生...
摘要:給賦值也是構造函數的工作之一。在的構造函數中,還給兩個成員函數綁定了當前的執行環境,因為方式創建的組件并不自動給我們綁定到當前實例對象。我們可以利用的功能,避免判斷邏輯這種充斥在構造函數之中,讓代碼更優。 React系列---React(一)初識ReactReact系列---React(二)組件的prop和stateReact系列---React(三)組件的生命周期 組件是React...
摘要:初識依稀記得那年參加線下活動,第一次聽說這個詞語,當時的主講人是郭達峰,他播放了一個關于及的性能對比視頻。合成事件會以事件委托的方式綁定到組件最上層,并且在組件卸載的時候自動銷毀綁定的事件。 初識React 依稀記得2015那年參加線下活動,第一次聽說React這個詞語,當時的主講人是郭達峰,他播放了一個關于ember、angular及react的性能對比視頻: React.js Co...
摘要:定義一個組件可以在其他組件中調用這個組件調用組件劉宇組件插入內容在上面的案例中可以看到吧寫到當中,這種寫法稱為。 React初識 React是Facebook推出的一個javascript庫(用來創建用戶界面的Javascript庫),所以他只是和用戶的界面打交道,你可以把它看成MVC中的V(視圖)這一層。 組件 React的一切都是基于組件的。web世界的構成是基于各種HTML標簽的...
閱讀 3019·2021-11-22 12:06
閱讀 603·2021-09-03 10:29
閱讀 6545·2021-09-02 09:52
閱讀 2018·2019-08-30 15:52
閱讀 3416·2019-08-29 16:39
閱讀 1193·2019-08-29 15:35
閱讀 2066·2019-08-29 15:17
閱讀 1424·2019-08-29 11:17