概述
使用axios进行ajax请求获取数据
- 运行:
npm i axios -S
安装axios - 语法:
// 引入axios
import axios from 'axios';
// 使用
componentDidMount(){ // class类的组件生命周期函数
axios.get('https://jsonplaceholder.typicode.com/todos').then(res=>{
console.log(res)
}).catch(err){
console.log(err)
}
}
父组件与子组件传值
- 父组件传递到子组件,同过props将值传递给子组件,这个值只读
- 父组件代码
export default class Father extends Component {
constructor(){
super()
this.state={
msg:'你好子组件'
}
}
render() {
return (
<>
<Son msg={this.state.msg}></Son>
</>
)
}
}
- 子组件代码
export default class Son extends Component {
constructor(){
super()
this.state={
}
}
render() {
return (
<>
<span>{this.props.msg}</span> // 通过props获得父组件传递的值
</>
)
}
}
使用context api 传递公共值
- 定义Provider,CounterConsumer组件
const {Provider,Consumer:CounterConsumer}=React.createContext()
- 定义公共数据组件CounterProvider,
class CounterProvider extends Component {
constructor(){
super()
this.state={
count:100
}
}
render(){
return <Provider value={{count:this.state.count,onIncrement:this.incrementCount}}> // 将value中的值传递给组件
{this.props.children}
</Provider>
}
incrementCount=()=>{
this.setState({
count:this.state.count+1
})
}
}
- 使用CounterProvider组件将需要获取公共数据的组件包裹
export default class center extends Component {
constructor(){
super()
this.state={
}
}
render() {
return (
<CounterProvider>
<Counter></Counter>
<CountBtn type="increment"> + </CountBtn>
</CounterProvider>
)
}
}
- 在使用CounterConsumer组件将需要获取公共数据的组件的返回值包裹
class Counter extends Component {
render() {
return <CounterConsumer>
{ // CounterConsume的children必须是一个方法,传递的参数就是Provider组件传递的值
({count})=>{ // 传递的值count就是公共数据中传递的count
return <span>{count}</span>
}
}
</CounterConsumer>
}
}
最后
以上就是超级水杯为你收集整理的React学习笔记(十)—— 数据交互的全部内容,希望文章能够帮你解决React学习笔记(十)—— 数据交互所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复