react学习笔记3--数据双向绑定,组件通信
创始人
2024-02-18 09:31:55
0

一、表单处理

 

1、受控组件-input元素

通过设置input元素的value值(或复选框的checked值)实现Getter,通过监听onChange事件实现Setter,从而实现数据双向绑定。

class element extends React.Component {state = {txt:"",checked:false}handleTxt = (e) => {this.setState({txt : e.target.value})}handleChecked = e => {this.setState({checked : e.target.checked})}render(){return ()}
}

多表单的优化操作:

1)给input元素加name,name=state中对应的数据名、2)统一用一个处理函数处理数据变化,函数内用e.target.name获取应该修改的状态名

class element extends React.Component {state = {txt:"",checked:false}handleForm = (e) => {let name = e.target.namelet value = e.target.value||e.target.checkedthis.setState({[name] : value}) //!!这里要用[],否则会当作"name"字符串处理}render(){return ()}
}

2、非受控组件

二、组件通信

1、props:一个对象

import React from 'react'
import ReactDom from 'react-dom'//函数式:porps形参
function Element1 (props){return (

{props.name}+{props.age}

) }//类式:this.props class Element2 extends React.Component{render(){return (

{this.props.name}+{this.props.age}

)} }ReactDom.render() ReactDom.render()

注:1)props可以传递任意数据类型,包括数组、对象、函数、dom结构等。2)props只读。3)在类中如果定义了constructor(props)则必须将props传入做形参,且需要在super(props)函数也传入props形参

组件间通信方式:

1)父传子:props传数据,如上

2)子传父:props传函数,通过回调函数传参方式

3)兄弟组件通信:状态提升,将共享状态的定义提升到公共父组件

2、context 跨级组件通信,祖先元素将数据传递给后代元素时使用

假设 祖先 > subComponent > 后代

1)创建两个内置组件Provider、Comsumer

const {Provider,Consumer} = React.createContext()

2)祖先元素中用Provider包裹返回值

//祖先
render(){return (
) }

3)后代元素用Consumer {}包裹

render(){return(
{ data =>

名字是:{data}

}

) }

三、props深入

1、props的children属性

当渲染组件时,组件中嵌套的内容视为children属性,可以通过props.children访问到。

嵌套的内容可以是文本、标签、组件、jsx语句、函数等

const App = (props)=>{props.children() //函数执行return (
{props.children}
) }// ReactDom.render(这是一段文本) // ReactDom.render(

这是一个p标签

) // ReactDom.render(这是一个子组件) // ReactDom.render({()=>console.log("这是一个函数")})

2、props校验,需要安装 prop-types包

常用的校验规则:

 3、props默认值

 

 

相关内容

热门资讯

深圳拟推“健康积分”制度 “健... 市民使用室外智能健身设施进行体育锻炼。 资料图 深圳新闻网2025年10月13日讯(深圳晚报记者 林...
执行回款:三流律师跑法院、二流... 根据最高法报告,截止去年年底,执行案件执行标的已达5万亿。 ——执行领域之热,可见一斑。各地法院民事...
《河南省法律援助条例》全文公布... 【大河财立方消息】10月13日,《河南省法律援助条例》全文公布,自2026年1月1日起施行。 其中提...
免签政策打开中韩旅游“新空间” 【环球时报记者 杨沙沙 涂蕾 环球时报驻韩国特约记者 黎枳银】编者的话:在刚刚过去的国庆中秋假期,中...
国金证券:未来一段时间重点或将... 每经AI快讯,国金证券指出,从近期政策表态、完成经济增长目标的压力、四季度的经济承受力来看,年内出台...
苏州工业园区:聚力打造涉外法律... 法治是开放发展最坚实的底座。近年来,苏州工业园区紧抓开放发展机遇,着力推动法律服务业特别是涉外法律服...
住房城乡建设部:加快构建房地产... 10月11日,国新办举行“高质量完成‘十四五’规划”系列主题新闻发布会,住房城乡建设部部长倪虹,副部...
严惩危害食品安全犯罪 山西省法... 为进一步震慑涉食品安全违法犯罪,近日,省法院围绕“尚德守法 共享食安”主题,发布5起依法严惩危害食品...
山东发布政策助力产业点“木”成... 从“一棵树”里能看到什么?过去,木头进去,白花花的纸张出来,这就到头了;今后,“一棵树”将发生七十二...
财经观察:免签政策打开中韩旅游... 【环球时报记者 杨沙沙 涂蕾 环球时报驻韩国特约记者 黎枳银】编者的话:在刚刚过去的国庆中秋假期,中...