1. 程式人生 > >React中文文件之Rendering Elements

React中文文件之Rendering Elements

Rendering Elements - 渲染元素
元素是React應用的最小構建塊
一個元素描述了你想要在螢幕上看到的內容:
		const element = <h1>Hello, world</h1>;
不同於瀏覽器的DOM元素,React元素是普通物件,而且易於建立。React DOM很小心將React元素更新為匹配的DOM物件。
注意:
人們可能將元素與一個廣為人知的概念"元件"混淆。在下一節我們將介紹元件。元素是元件的組成部分,在跳躍著閱讀時,我們鼓勵你閱讀本節。


Rendering an Element into the DOM - 渲染一個元素為DOM
在你的HTML檔案某處,有一個 '<div>':
		<div id="root"></div>

我們稱這個為一個 'root' DOM節點,因為在它內部的任何內容,都將會被 'React DOM' 來管理。
只通過React構建的應用,經常有一個單個的根DOM節點。如果你正在將React和一個已經存在的應用相融合,你可以設定多個孤立的根DOM節點。
為了渲染一個React元素到一個根DOM節點,將2者都傳遞給 'ReactDOM.rend()':
		const element = <h1>Hello, world</h1>;
		ReactDOM.render(
			element,
			document.getElementById('root');
		);

在頁面上顯示 'Hello, world'.

Updating the Rendered Element - 更新渲染過的元素
React元素時不可改變的。一旦你建立一個元素,你不能改變它的子或者屬性。一個元素就像電影中單獨的一幀:代表一個時間點的UI。
以目前我們學到的知識,更新UI的唯一方式是建立一個新的元素,並且傳遞給 'ReactDOM.render()'。
思考時鐘的例子:
		function tick() {
			const element = (
				<div>
					<h1>Hello, world!</h1>
					<h2>It is {new Data().toLocaleTimeString()}.</h2>
				</div>
			);
			ReactDOM.render(
				element,
				document.getElementById('root');
			);
		}
		setInterval(tick, 1000);

利用 setInterval() 的回撥函式,每秒呼叫 'ReactDOM.rend()' 一次。
注意:
實際上,大多數React應用僅僅呼叫 'ReactDOM.rend()' 一次。在下個章節我們將學習如何將這樣的程式碼封裝到有狀態的元件中。
我們推薦你不要跳過這些主題,因為它們相互關聯。

React Only Updates What's Necessary - React僅執行必需的更新
React DOM 將元素和它的子與之前的元素和子進行比較,僅更新必需更新的地方,來讓DOM達到它期望的狀態。
你可以通過使用瀏覽器工具檢查最後一個例子來核實。
這裡是文件裡的firebug動態截圖。
即使在每秒,我們建立了一個元素,來描述整個UI樹,也僅僅只有內部的文字節點通過React DOM被更新。
以我們的經驗,思考任何給定時刻UI應該看起來像什麼,而不是隨著時間它是如何改變的,消除了一整型別的bug。(這就是React真正的內在)

相關推薦

React中文Rendering Elements

Rendering Elements - 渲染元素元素是React應用的最小構建塊一個元素描述了你想要在螢幕上看到的內容: const element = <h1>Hello, world</h1>;不同於瀏覽器的DOM元素,React元素是普通物

React中文Handling Events

Handling Events - 事件處理React元素的事件處理同DOM元素的事件處理非常相似。有一些語法不同:1.React事件使用 'camelCase-駝峰式' 命名,而不是 'lowercase-小寫字母'2.使用JSX,傳遞一個函式作為事件處理,而不是字串例如

React中文Forms

Forms - 表單在React中,HTML表單元素同其他DOM元素,有點不同。因為表單元素天生具備一些內部的state狀態。例如:下面的HTML表單接收一個名字: <form> Name: <input type="text" name="

Chromium Embedded Framework中文(基本使用)

視窗建立之前 (HandleBeforeCreated),客戶端可用之取消與定製瀏覽器視窗建立過程。視窗建立之後(HandleAfterCreated). 可用於建立自定義的CefJSHandler物件。位址列更新(HandleAddressChange). 將位址列更改為指定的字串,通知發生於導航提交後與頁

IdentityServer4系列中文及實際專案經驗分享

0、前言 原文:http://docs.identityserver.io/en/release/宣告: 1、目錄一至五章節根據IdentityServer英文文件翻譯而來,有些內容會根據自己的理解來表述的(包括標題),文件的內容會不斷的更新。 2、第六章節會進行闡述在實際專案中所用的內容以及問題 &

DL4J中文/開始/Eclipse DL4J示例

DL4J示例調研 DL4J的Github倉庫有很多示例可以涵蓋它的功能。快速入門向你展示瞭如何設定Intellij並克隆倉庫。本頁提供這些例子中的一些概述。 DataVec 示例 大多數示例都使用DataVec,這是一個通過歸一化,標準化,搜尋和替換,列洗牌和向量化  

React-Redux 中文

介紹 快速開始 React-Redux是Redux的官方React繫結庫。它能夠使你的React元件從Redux store中讀取資料,並且向store分發actions以更新資料 安裝 在你的React app中使用React-Redux: npm install

React官方Why React?

原文連結 譯者:羅澤軒 為什麼使用React? React作為創造使用者介面的JavaScript庫,在Facebook和Instagram中被廣泛使用。許多人視React為MVC中的V。React的誕生,就為解決一個問題:如何建立基於變化資料的大型應用。 簡單(Simple) 簡單地陳述

React官方Getting Started

原文連結  譯者:jella77 JSFiddle 開始React最簡單的方法就是遵循JSFiddle的Hello World例子: 入門包 如果你剛剛起步,你可以下載Starter Kit。Starter Kit包含為瀏覽器預製的React和React DOM,以及幫助你開始的示例。

React官方Forms

原文連結  譯者:黃文海 表單(Forms)  諸如<input>、<textarea>和 <option>的表單元件與其它原生(native)元件不同,因為它們可以通過使用者互動而被改變。這些元件提供的介面使得管理表單對使用者互動的響應更加容易。 有關

React官方教程Tutorial

原文連結 譯者:jella77 教程Tutorial  我們建立一個簡單但實際的評論框,Disqus, LiveFyre或Facebook可以提供實時評論,評論框可以放在一個部落格中。 我們提供: 可以看到所有評論的檢視 提交評論的表單 通過Hooks可以自定義後端 它有如下特點: 優

Keras:基於Theano和TensorFlow的深度學習庫中文

  本部落格主要給出某些必備的部分(一直更新中),詳細內容請移步至Github以及MoyanZitto的主頁。 第一部分:快速開始Keras   Keras的核心資料結構是“模型”,模型是一種組織網路層的方式。Keras中主要的模型是Sequ

程序中的沙盒以及plist的初步使用

ice b2c ng- 可見 ngs 函數 用戶 nsdata nss 沙盒是相對於“應用程序”的文件,也就是相相應app所在的頁面的文件。 每個應用都有自己的應用沙盒(應用沙盒就是文件系統文件夾)。與其它文件系統隔離。應用必須呆在在積極的沙盒中。其它的應用不可以訪問沙

React Native開發】React Native控ProgressBarAndroid進度條解說(12)

ice 發現 來講 top 文章 func dev all ios 轉載請標明出處:http://blog.csdn.net/developer_jiangqq/article/details/50596367本文出自:【江清清的博客】(一)前言 【好消息】

Linux用戶相關/etc/pssswd

理論 shel etc 開放 登錄 passwd 重復 login 由於 1.文件地址:   /etc/pssswd  -rw-r--r--. 1 root root 936 10月 6 12:50 /etc/passwd 2.文件內容:   xiaol_1:x:501

Linux用戶相關

linu 文件內容 刪除 應該 說明 信息 oot gid 通過 組信息文件:   1.文件地址:     /etc/group     -rw-r--r--. 1 root root 492 10月 6 21:56 /etc/group   2.文件內容:    

Nginx(五)-- 配置Rewrite

log 技術分享 判斷 placement ble png per 大小寫 遠程 Rewrite支持URL重寫 1.常用指令以及語法   1) if指令    if語法: if 空格 (condition) {}    條件:    1. &ld

ajax異步上傳data參數----小哈學js

style var 屬性 ada 數據 value lap sed $.ajax 下載ajaxFileUpload.js(下載網址:http://fileuploadajax.codeplex.com/downloads/get/20976) 修改ajaxFileUplo

Solr 配置schema.xml

standard 不同的 文檔 Coding 指向 hand 微軟 等價 core schema.xml這個配置文件的根本目的是為了通過配置告訴Solr怎樣建立索引。 solr的數據結構例如以下: document:一個文檔、一條記錄

Shell-3-

roo count 差集 class 表示 /dev/zero tex font 1.0 1.生成任意大小的文件 [[email protected]/* */ tmp]# dd if=/dev/zero of=junk.data bs=1M count=1