摘要:配置默認(rèn)和中的操作并不能完全滿足所有操作需求,有些時(shí)候還是需要和打交道。當(dāng)中提供了屬性來幫助我們獲取已經(jīng)掛載元素的節(jié)點(diǎn)。當(dāng)元素在頁面上掛載完成以后,就會調(diào)用這個(gè)函數(shù),并且把這個(gè)掛載以后的節(jié)點(diǎn)傳給這個(gè)函數(shù)。
配置默認(rèn) defaultProps
class ExampleComponent extends React.Component{ static defaultProps = { value: 0 } ... } /*-------------------------------*/ class ExampleComponent extends React.Component{ ... } ExampleComponent.defaultProps = { value: 0 }ref和React中的DOM操作
React.js并不能完全滿足所有DOM操作需求,有些時(shí)候還是需要和DOM打交道。比如進(jìn)入頁面后自動focus到某個(gè)輸入框,這是需要調(diào)用input.focus()的DOM API。React當(dāng)中提供了ref屬性來幫助我們獲取 已經(jīng)掛載元素 的DOM節(jié)點(diǎn)。具體的使用方法如下:
class ExampleInput extends Component { componentDidMount () { this.input.focus() } render () { return ( this.input = input} /> ) } }
可以看到我們給 input 元素加了一個(gè) ref 屬性,這個(gè)屬性值是一個(gè)函數(shù)。當(dāng) input 元素在頁面上掛載完成以后 ,React 就會調(diào)用這個(gè)函數(shù),并且把這個(gè)掛載以后的 DOM 節(jié)點(diǎn)傳給這個(gè)函數(shù)。在函數(shù)中我們把這個(gè) DOM 元素設(shè)置為組件實(shí)例的一個(gè)屬性,這樣以后我們就可以通過 this.input 獲取到這個(gè) DOM 元素。
dangerouslySetInnerHTML出于安全考慮的原因(XSS 攻擊),在 React當(dāng)中所有通過表達(dá)式插入的內(nèi)容都會被自動轉(zhuǎn)義
class ExampleComponent extends React.Component { render () { const content = "Hello World
" return ({content}) } }
在上面的例子中,content的內(nèi)容會被自動轉(zhuǎn)義,當(dāng)組件被渲染后,頁面顯示的是文本形式的"
如果想要?jiǎng)討B(tài)的向元素內(nèi)部插入新的元素內(nèi)容,該如何做呢?這時(shí)就需要使用dangerouslySetInnerHTML屬性了
class ExampleComponent extends React.Component { render () { const content = "組件參數(shù)驗(yàn)證Hello World
" return ( ) } }
React提供了一種機(jī)制,可以給props中的屬性進(jìn)行類型驗(yàn)證.如果需要對參數(shù)進(jìn)行類型驗(yàn)證,需要安裝一個(gè)由React提供的第三方庫prop-types
安裝prop-typesnpm install --save prop-types
使用prop-types驗(yàn)證參數(shù)類型import React, { Component } from "react" import PropTypes from "prop-types" class Comment extends Component { static propTypes = { comment: PropTypes.object // 要求 this.props.comment 必須是 object類型 } ....
prop-types提供的數(shù)據(jù)類型
PropTypes.array PropTypes.bool PropTypes.func PropTypes.number PropTypes.object PropTypes.string PropTypes.node PropTypes.element ...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/83295.html
摘要:因?yàn)楣ぷ髦幸恢痹谑褂茫惨恢币詠硐肟偨Y(jié)一下自己關(guān)于的一些知識經(jīng)驗(yàn)。于是把一些想法慢慢整理書寫下來,做成一本開源免費(fèi)專業(yè)簡單的入門級別的小書,提供給社區(qū)。本書的后續(xù)可能會做成視頻版本,敬請期待。本作品采用署名禁止演繹國際許可協(xié)議進(jìn)行許可 React.js 小書 本文作者:胡子大哈本文原文:React.js 小書 轉(zhuǎn)載請注明出處,保留原文鏈接以及作者信息 在線閱讀:http://huzi...
摘要:最近剛進(jìn)入公司實(shí)習(xí),找工作的過程中發(fā)現(xiàn)還是基礎(chǔ)比較重要吧。分享一些關(guān)于前端開發(fā)入門和入門的小項(xiàng)目小任務(wù)吧。百度前端技術(shù)學(xué)院的任務(wù)其實(shí)能把百度前端技術(shù)學(xué)院的任務(wù)做完就很不錯(cuò)啦,這里推薦幾個(gè)比較好的任務(wù)。可以學(xué)到前端工程化和入門的相關(guān)知識。 最近剛進(jìn)入公司實(shí)習(xí),找工作的過程中發(fā)現(xiàn)還是基礎(chǔ)比較重要吧。分享一些關(guān)于前端開發(fā)入門和React入門的小項(xiàng)目(小任務(wù))吧。 百度前端技術(shù)學(xué)院的任務(wù) 其實(shí)...
摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...
摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...
摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...
閱讀 3723·2021-11-24 09:39
閱讀 1870·2021-11-16 11:45
閱讀 616·2021-11-16 11:45
閱讀 1029·2021-10-11 10:58
閱讀 2475·2021-09-09 11:51
閱讀 1941·2019-08-30 15:54
閱讀 687·2019-08-29 13:13
閱讀 3466·2019-08-26 12:18