0
点赞
收藏
分享

微信扫一扫

react memo判断刷新机制 自定义的比较函数 避免重复渲染

小_北_爸 2023-09-13 阅读 12

1.父组件向子组件传值使用props

import React,{Component} from 'react'
import Center from './components/Center'

export default class App extends Component {
state={
todos:[
{id:'001',name:'吃饭',done:true},
{id:'002',name:'睡觉',done:true},
{id:'003',name:'打代码',done:false},
]
}

render(){
return (
<div>
<Center todos={this.state.todos}/>
</div>


);
}

}

子组件接收,渲染页面

import React, { Component } from 'react'
import Center from './index.module.css'
export default class index extends Component {
render() {
let {todos} =this.props;
return (
<div>
<ul>
{todos.map((i)=>{
return (
<li key={i.id} className={Center.li}>
<div className={Center.leftBox}>
<input type="checkbox" defaultChecked={i.done}/>
<span>{i.name}</span>
</div>
<button>删除</button>
</li>
)
})}
</ul>
</div>

)

}
}

2.子组件向父组件传递参数

import React,{Component} from 'react'
// import Hello from './components/Hello'
import Header from './components/Header'
import Center from './components/Center'
import Foot from './components/Foot'

export default class App extends Component {

// ,data是子组件传给父组件的值
a=(data)=>{
console.log(data,'app')
}
render(){
return (
<div>
<Header a={this.a}/>
<Foot/>
</div>


);
}

}

子组件通过父组件传过来的函数,在合适的时机传给,父元素函数接收的data上

import React, { Component } from 'react'
import Header from './index.module.css'
export default class index extends Component {
render() {
return (
<div>
<input
className={Header.input}
type="text"
placeholder='请输入你的任务,按回车键确认'
onKeyUp={this.keyCode}>
</input>
</div>

)
}
// 回车响应
keyCode=(e)=>{
if(e.keyCode===13){
this.props.a(e.target.value)
}
}
}
举报

相关推荐

0 条评论