搜尋
首頁web前端js教程React屬性有哪些?關於react屬性、事件與共享的使用詳解

本篇文章主要的講述了關於react中的屬性的使用,還有關於react的事件與共享的使用,接下來就讓我們閱讀這篇文章吧

本文主要講解React中關於屬性的使用、React特有的標籤取得以及React共享的使用等,具體如下:

  • React的State屬性

  • React的Props屬性

  • React事件綁定與資料雙向互動

  • #React元件的複用與驗證

  • React元件的Refs

  • React獨立元件之間共用操作Mixins

1、State屬性

  • React的狀態機,用於改變自身模組的資料;

  • state作用域只屬於目前類,不會污染其他模組;

  • 初始化:this.state = {username: “XXX”};

  • 初始化的state設定放置在建構函數constructor裡面;

  • 修改state:this.setState({username: “AAA”});

  • #總結:state是模組本身屬性的設定。

2、Props屬性

  • props是對於模組來說屬於外來屬性(父子級資料傳遞)

  • 傳遞的方式需要參數設定;

  • 在接收模組中使用:this.props.xxx;

#3、事件綁定與資料雙向交互作用

3.1 事件綁定

  • #第一種:在建構子constructor中綁定this:this.focus = this.focus. bind(this);

  • 或呼叫綁定:onClick={this.focus.bind(this,99)}

    • (bind的值中this用於綁定模板,99用於參數傳遞)

#3.2 資料的雙向綁定

  • 父級傳遞給子級(es5遵循)

  • 子級頁面向父級頁面傳遞參數

    • 在子頁面中透過呼叫父頁傳遞過來的事件props 進行群組價間的參數傳遞

    • #使用onChange事件可是進行即時監聽

#3.3 資料的請求方法

  • 傳統的AJAX方法

  • ES6提供的promise

#
promise.then( null, function( reason ){
    /* rejection */} );// 等价于promise.catch( function( reason ){
    /* rejection */} );
  • ES6提供的promise—使用Fetch實作HTTP的請求

fetch("http://newsapi.gugujiankong.com/Handler.ashx?action=getnews&type=" + this.props.type + "&count=" + this.props.count, myFetchOptions).then(response => response.json()).then(json => this.setState({news: json}));

4、元件的複用及驗證

#4.1 Props驗證

  • 法1:const types = {userid: React.PropTypes.number.isRequired};  BodyIndex.propTypes = types;


  • ##法2:BodyIndex.propTypes = { userid: React.PropTypes.number.isRequired };

  • 註:propTypes在v15.5版本之後需要安裝環境才能使用:npm install prop-types –save

  • #如下 介紹:import PropTypes from 'prop-types';
  • #使用BodyIndex.propTypes = { userid: PropTypes.number.isRequired };
  • 4.2 預設的Props值

  • ##4.2 預設的Props值

##4.2 預設的Props值
  • #定義:const defaultNum = {username: “預設名”};
  • #使用:BodyIndex.defaultProps = defaultNum;(想看更多就到PHP中文網React參考手冊

    欄位中學習)
  • 4.3 元件的重複使用—參數的使用

    <BodyChild {...this.props} sex={"XXX}/>

    5、元件的Refs—取得標籤
  • #方法一:原始的取得標籤方式:var myButton = document.getElementById(“submitButton”); myButton.style.color = “red”;
  • #方法二:對標籤設定ref屬性:

    ;##############################################################################################'方法二的取得以及設定:this.refs.submitButton .style.color = “red”;#############Refs是存取元件內部DOM節點的唯一可靠方法;########################################################################### ######程式碼結束時,Refs會自動銷毀掉原來對子元件的參考;#############不要在render或render之前對Refs進行呼叫;###### #######不要濫用Refs。 ############6、獨立元件之間共享操作Mixins#############作用:不同元件之間公用功能,共享程式碼;##### #######專案安裝mixin:###npm install –save react-mixin@2###############匯入外掛:###import ReactMixin from 'react- mixin';###############新共用檔案-存放大量的公用函數或屬性;############哪裡需要使用就在那個元件###import MixinLog from './mixin.js';#######
  • 把共享物件集合MixinLog,賦值給目前的元件原型:ReactMixin(BodyIndex.prototype, MixinLog);

  • #對應不同的需求進行函數調用即可,如:MixinLog.log()。

  • 特點:和頁面有類似的生命週期,呼叫幾次就執行了幾次

7、 總結

本文主要是React的狀態屬性使用以及元件驗證、復用作出簡要介紹,大家可以下載軟體,下載完畢之後,透過指令面板定位到目前資料夾,之後執行npm install安裝所有環境,安裝完畢後,執行webpack –watch,專案即可運作。

這篇文章到這就結束了(想看更多就到PHP中文網React使用手冊欄位中學習),有問題的可以在下方留言提問。

以上是React屬性有哪些?關於react屬性、事件與共享的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Java vs JavaScript:開發人員的詳細比較Java vs JavaScript:開發人員的詳細比較May 16, 2025 am 12:01 AM

javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps,while javascriptifforInteractiveWebpages.1)JavaisComcompoppored,statieldinglationallyTypted,statilly tater astrunsonjvm.2)

JavaScript數據類型:瀏覽器和nodejs之間是否有區別?JavaScript數據類型:瀏覽器和nodejs之間是否有區別?May 14, 2025 am 12:15 AM

JavaScript核心數據類型在瀏覽器和Node.js中一致,但處理方式和額外類型有所不同。 1)全局對像在瀏覽器中為window,在Node.js中為global。 2)Node.js獨有Buffer對象,用於處理二進制數據。 3)性能和時間處理在兩者間也有差異,需根據環境調整代碼。

JavaScript評論:使用//和 / * * / * / * /JavaScript評論:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:開發人員的比較分析Python vs. JavaScript:開發人員的比較分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

Python vs. JavaScript:選擇合適的工具Python vs. JavaScript:選擇合適的工具May 08, 2025 am 12:10 AM

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript:了解每個的優勢Python和JavaScript:了解每個的優勢May 06, 2025 am 12:15 AM

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

JavaScript的核心:它是在C還是C上構建的?JavaScript的核心:它是在C還是C上構建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。