React onClick/onChange傳參(bind綁定)問題
React onClick/onChange傳參(bind綁定)
一般是通過 bind 函數(shù)綁定 this,來傳遞參數(shù)的,沒有參數(shù)就是下面這種方式或者直接寫函數(shù)名
代碼如下:
//被觸發(fā)函數(shù)寫法:
const onChange = (e) => {
? ? //操作
}
?
onChange={onChange}
or
onChange={onChange.bind(this)}有參調(diào)用,代碼如下:
//被觸發(fā)函數(shù)寫法:
const onChange = (index, e) => {
????//操作
}傳值調(diào)用:
onChange={onChange.bind(this, 0)}onClick 傳參方式同上,就不在此贅述了。
到此 React onClick/onChange 傳參 (bind綁定)介紹完成。
React基礎(chǔ)語法與組件傳參
react 特點
- 構(gòu)建用戶界面的javascript庫
- facebook 臉書出品
- 組件化
- 單向數(shù)據(jù)流
- 生命周期
- 虛擬dom
- hooks
jsx 語法
方便js中書寫html模板,javascript與html混合寫法
- 1. 只有個根節(jié)點
- 2. {} js表達式
- 3. {/* 注釋內(nèi)容*/}
- 4. className定義類名
- 6. 樣式對象會自動展開
- 6. 數(shù)組可以包含html ,并自定展開
react組件
函數(shù)組件
function App(){
return <div> ... </div>
}
export default App;
類組件
import React,{Componet} from 'react'
class App extends Componet {
constructor(props){
super(props)
}
state = {num:5}
render(){
return <div></div>
}
}
export default App
函數(shù)組件和類組件區(qū)別
1.函數(shù)組件通常展示
類組件通常做為容器
2.類組件可以有state,管理數(shù)據(jù)用類組件
函組件沒有state
3.函組件沒有this
類組件 有this
4.函數(shù)組件沒有生命周期
類組件有生命周期
模板語法
文本
// 普通文本
<h1 className="active">你好react</h1>
// html文本
<div dangerouslySetInnerHTML={_html:html文本內(nèi)容}></div>
條件渲染
{flag&&<h1>為true顯示</h1>}
{flag?'true顯示':'false顯示'}
列表渲染
{list.map(item=><h3 key={item}>{item}</h3>)}事件
// 和原生js事件一致 事件命名用駝峰式
onclick // 原生
onClick // react
onmouseover // 原生
onMouseover // react
// 事件總是要響應(yīng)一個函數(shù)
<h1 oncClick={()=>{ alert("abc")}}>
// 事件響應(yīng) 箭頭函數(shù)
doit = ()=>{ alert("你好")}
// 事件響應(yīng)定義好的函數(shù)
<h1 onClick={this.doit}>
state
- react組件的狀態(tài)/數(shù)據(jù)
- this.setState({k:新的值})
- 當(dāng)state發(fā)生變化,引用state的視圖會自動更新
表單的數(shù)據(jù)綁定
changeMsg=e=>this.setState({msg:e.target.value})
<input value={this.state.msg} onChange={this.changeMsg}>組件
組件名稱的首字母必須大寫
組件傳參示意圖

定義組件
src/components/Steper.js
在App.js導(dǎo)入組件
import Steper from './components/Steper'
在App.js render函數(shù)中使用
<Steper></Steper>
組件傳參
父傳子 props
// 父組件傳遞
<Steper num={5}>
// 子組件接收
props.num
默認參
Steper.defaultProps = {
num:1
}
- 子傳父,執(zhí)行父組件的傳遞過來的props回調(diào)函數(shù)
- 子傳父:執(zhí)行回調(diào)函數(shù)
子傳父
// 父組件
// 定義函數(shù)并把函數(shù)傳遞給子組件
updateSize = (n)=>this.setState({size:n}) // 定義函數(shù)
<Steper updateSize={this.updateSize}> // 傳遞給子組件
// 子組件
// 執(zhí)行
props.updateSize() // 相當(dāng)于執(zhí)行父組件的updateSize方法
組件的設(shè)計
容器組件
- 一個頁面,一個容器組件
- 有state,處理state方法
- 數(shù)據(jù)中心,與數(shù)據(jù)處理組中心
- 類組件
視圖組件
- 顯示內(nèi)容,一個視圖組件
- 只有props沒有state
- 函數(shù)組件
解構(gòu)

dom 引用
// 1. 導(dǎo)入創(chuàng)建dom 引用的方法
import {createRef} from 'react'
// 2. 創(chuàng)建dom引用
var inp = createRef()
// 3. 引用
<input ref={inp}>
// 4. 獲取值
inp.current.value
inp.current 當(dāng)前引用的dom節(jié)點
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在react項目中使用antd的form組件,動態(tài)設(shè)置input框的值
這篇文章主要介紹了在react項目中使用antd的form組件,動態(tài)設(shè)置input框的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Redis數(shù)據(jù)結(jié)構(gòu)面試高頻問題解析
這篇文章主要為大家介紹了Redis數(shù)據(jù)結(jié)構(gòu)高頻面試問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06
基于PixiJS實現(xiàn)react圖標(biāo)旋轉(zhuǎn)動效
PixiJS是一個開源的基于web的渲染系統(tǒng),為游戲、數(shù)據(jù)可視化和其他圖形密集型項目提供了極快的性能,這篇文章主要介紹了用PixiJS實現(xiàn)react圖標(biāo)旋轉(zhuǎn)動效,需要的朋友可以參考下2022-05-05
React實現(xiàn)頁面狀態(tài)緩存(keep-alive)的示例代碼
因為?react、vue都是單頁面應(yīng)用,路由跳轉(zhuǎn)時,就會銷毀上一個頁面的組件,但是有些項目不想被銷毀,想保存狀態(tài),本文給大家介紹了React實現(xiàn)頁面狀態(tài)緩存(keep-alive)的代碼示例,需要的朋友可以參考下2024-01-01
next-redux-wrapper使用細節(jié)及源碼分析
這篇文章主要為大家介紹了next-redux-wrapper使用細節(jié)及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02

