您好,登錄后才能下訂單哦!
React是Facebook內部的一個資源類庫,主要是做前端UI的組件式開發,它使用一種新的方式來處理瀏覽器的DOM,不需要手動的更新DOM,也不需要自己管控哪部分DOM需要更新,或者不要更新。React有自己的一套算法來控制如何最小的改動DOM來更新整個應用程序。虛擬DOM還有一個好處就是可以解決瀏覽器的兼容問題,可以將虛擬DOM根據瀏覽器的不同而翻譯為相對應的語言。
state是React用來控制更新應用的狀態,每次state的值發生變化,就會觸發render,render的返回值有變化,虛擬DOM就會更新,真實的DOM也會跟著變化,最終就是我們在瀏覽器中看到的變化。需要注意的是React是單向數據流綁定。單向數據流比雙向數據流綁定要輕的多,所以其性能更高。其刷新時的代碼為:
this.setState({items: data});//items為剛開始定義的state變量,data為要賦給items的值
props是React在整個組件樹中傳遞數據用的,可以把props理解為只讀。
比如:
Send為子控件,要將父控件中的item傳入子控件,父控件中定義為:
<Send/ item = {this.state.item}>
子控件中接收:
let item = this.props.item;
這些都是一些最基礎的用法:
下面給出一個完整的例子:
import React from 'react'; import Uri from '../../uri/TestUri'; import axios from 'axios'; import ChildList from './ChildList'; export default React.createClass({ getInitialState: function() { //設置初始狀態item return { items : [] }; }, getJson: function () { let url = Uri.getTestUri; return axios.get(url); //axios是屬于nodejs前后端調用 }, componentDidMount: function () { //React中的生命周期,為頁面渲染完后執行,還有其他的 this.getJson() //componentWillMount,componentWillReceiveProps等等 .then((result) => { this.setState({ items: result.data }); //設置state值,設置完成后瀏覽器重新更新 //console.log(result.data[1]); }) .catch((response) => { console.log(response); }); }, render: function(){ return ( <ChildList items={this.state.items} /> //給子組件ChildList 傳值 ); }, });
今晚被傻蛋打攪,浪費很多時間,就不寫了...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。