React js屬性和狀態的使用和區別
React js的屬性和狀態
屬性:props 一般屬性是不改變的,經常作為傳入的資料.
例: 建立PropsTest控制元件,從網頁上輸出簡單的 Hello, XXX, XXX為傳入的屬性name,當name為空時,輸出Hello,World 輸入為其他值時,比如:Curry,輸出Hello,Curry
<script type="text/babel"> var PropsTest = React.createClass( { render: function () { return ( <div> Hello, {this.props.name? this.props.name: "World"} </div> ); } }); ReactDOM.render( <PropsTest name="Curry"/>, document.body ); </script>
狀態:state 一般狀態是不斷變化的,空間內部可以控制state的變化
例: 建立StateTest控制元件,實現在輸入框中輸入資料XXX,輸入Hello, XXX. XXX隨著輸入框的輸入內容而改變.
在render方法中定義<div>Hello, {this.state.name}</div>, 定義input,並新增onChange方法textChange, 在方法裡面程式碼實現name的值隨輸入的值改變
程式碼如下:
<script type="text/babel"> var StateTest = React.createClass( { getInitialState: function () { return { name: 'World' } }, textChange: function (event) { this.setState({ name: event.target.value }); }, render: function () { return ( <div> <p>Hello, {this.state.name}</p> <input type="text" onChange={this.textChange} /> </div> ); } }); ReactDOM.render( <StateTest />, document.body ); </script>
區分: 元件在執行時需要修改的資料時狀態
狀態和屬性的相似點: 1,是純js物件
2,改變會觸發render方法
不同點: 1,屬性值可以由父類傳入,狀態值不能
2,屬性值不在元件內部修改,而狀態值就是在元件內部修改的
相關推薦
React js屬性和狀態的使用和區別
React js的屬性和狀態 屬性:props 一般屬性是不改變的,經常作為傳入的資料. 例: 建立PropsTest控制元件,從網頁上輸出簡單的 Hello, XXX, XXX為傳入的屬性name,當name為空時,輸出Hello,World 輸入為其他值時,比如:Curry,輸出He
React:JS中的this和箭頭函數
-c c++ upload per 初始 正常 develop pan pre JS中的this和純面向對象(java,c++)中的this有點不大一樣,其原因就是作用域不同,導致JS中的this的指向不明確,在java中的this指當前對象的this或當前類的this,在
React Native 屬性.樣式.狀態
一. HelloWord 1.初始化工程 react-native init Hello cd Hello react-native run-ios 這個有一點要注意,博主是在終端直接操作的,後來把檔案移動到專門的React Native資料夾裡,移動之後,之前建立的專案都
React 屬性和狀態的一些總結
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv='Content-type' content='text/html; charset=utf-8'> 5 <title&
React Props/State/Forms 屬性和狀態
狀態(State) 和 屬性(Props) props 是元件對外的介面,state 是元件對內的介面。 元件內可以引用其他元件,元件之間的引用形成了一個樹狀結構(元件樹),如果下層元件需要使用上層元件的資料或方法,上層元件就可以通過下層元件的props屬性進行
js函式帶括號和不帶括號賦給物件屬性的區別
注意: 1.js為物件新增函式時,不要在函式後面加()。一旦加了括號是表示將函式的返回值賦給物件的屬性。 例:function test(){ document.writeln("我是js函式") } var obj = new Object(); obj.info=new function(
Vue.js中計算屬性和方法的區別
在vue.js中,計算屬性和方法達到的效果是一樣的,但是計算屬性是基於依賴進行快取的,只有message發生改變才會導致reverseMessage發生改變,只要 message 還沒有發生改變,多次訪問 reversedMessage 計算屬性會立即返回之前的計算結果,而不
jQuery和js一些標籤屬性的獲取和修改方法以及區別
因為自己總是在jQuery和js寫function的時候,總是把兩者之間混淆,一直想總結以下這2這區別和使用的方式,所以就查了下,再加上了自己平時記錄的,總結下,為了下次自己再次混淆的時候可以直接看自己的部落格查詢,同時也給大家提供便利,以下有轉載的部分,我已經提供了出處,
js對象 對屬性調用.和[] 兩種方式遇到過得區別
rop url 賦值 表達式 type 認識 表達 strong 錯誤 1 .標準格式是對象.屬性(不帶雙引號) 註意一點的是js對象的屬性,key標準是不用加引號的,加也可以,特別的情況必須加,如果key數字啊,表達式啊等等,加引號是為了將其視為整體,認識一點
JS中isPrototypeOf 和hasOwnProperty 的區別
另一個 strong 是否 指定 不同 名稱 功能 成員 eof 1、isPrototypeOf isPrototypeOf是用來判斷指定對象object1是否存在於另一個對象object2的原型鏈中,是則返回true,否則返回false。 格式如下: object1.is
JS中數組和對象的區別
src 區別 nbsp log 對象 img images image ima JS中數組和對象的區別
textbox的enabled屬性和readonly的區別
don ext 輸入 led 事件 屬性 文本框 更改 12月 2013年12月11日寫到: enabled屬性設置成false的時候,不會和用戶進行交互,即用戶不能輸入,但是可以用代碼給文本框賦值。不能進行各種界面上的操作,比如不回應單擊,雙擊,leave事件等。read
js中undefined和null的區別
常常 html exist tex 輸出 output 為什麽 hive 存在 轉自:http://www.cnblogs.com/eastday/archive/2010/03/03/1677324.html 在JavaScript中存在這樣兩種原始類型:Null與Und
js ==和===以及!= 和 !==的區別
true style cnblogs 基礎類型 family var ber 16px 運算 一、js == 與 === 的區別[轉] 1. 對於string,number等基礎類型,==和===是有區別的 1)不同類型間比較,==之比較“轉化成同一類型後的值”看“
js中eval()和$.parseJSON()的區別
16px 異常 comment 而不是 str on() ajax 鏈接 強制 之前自己一直對ajax不是特別的熟悉,所以一般都很少用這個去寫功能,但是最近這個項目中用到了,用ajax異步傳數據,json傳數據這個時候就需要去解析傳過來的數據了,eval()和$.parse
Js中caller和callee的區別
存在 ons var nbsp fun 區別 test 函數對象 返回 1 :caller 返回一個調用當前函數的引用 如果是由頂層調用的話 則返回null (舉個栗子哈 caller給你打電話的人 誰給你打電話了 誰調用了你 很顯然是下面a函數的執行 只有在打電話的時候
js學習總結----call和apply和bind的區別
style 效果 兩個 是我 define 學習 處理 blog call() apply和call的方法是一模一樣的,都是用來改變方法的this關鍵字,並且把方法執行:而且在嚴格模式和非嚴格模式下對於第一個參數是null/undefined這種情況的規律是一樣的; bin
js中觸摸相關變量touches,targetTouches和changedTouches的區別
屬性 style 相同 pan tar chang color code bsp touches: 當前屏幕上所有觸摸點(手指)的列表; targetTouches: 當前DOM元素上所有觸摸點(手指)的列表; changedTouches: 涉及當前事件的觸摸點(手指
JS 中的require 和 import 區別
js模塊化 version 函數名 比較 extc 做到 logs imp 變量 在研究react和webpack的時候,經常看到在js文件中出現require,還有import,這兩個都是為了JS模塊化編程使用。CSS的是@import 1.ES6 模塊的設計思想,是盡量
CSS 屬性 - 偽類和偽元素的區別
習慣 div 個人觀點 養成 pseudo line 現象 let first 先說一種我們寫CSS時候常見的現象,::before和:after中雙冒號和單冒號會在寫CSS中經常看到。為什麽會有單冒號跟雙冒號兩種寫法呢? 其實主要是為了區分偽類和偽元素 偽類:偽類用於