props-type context
传统的父子组件传值 : 这样要一层一层往下传,会带来诸多不便
import React from 'react';
import ReactDOM from 'react-dom';//一般的父子组件传值 会是从上往下一个套一个都带上参数
//比如改变颜色,比如渲染messages
//这样子真的很麻烦,所以用context来改变这样的传值方式,用'prop-type'
class Container extends React.Component{render(){return(<MessageList messages={this.props.messages} color={color}/>)}
}
class MessageList extends React.Component{render(){return(<ul>{this.props.messages.map((message,index)=><Message color={color} key={index} message={message}/>)}</ul>)}
}
class Message extends React.Component{render(){return(<li style={{color:this.props.color}}>{this.props.message}</li>)}
}let messages = [1,2,3];
let color = 'blue';
ReactDOM.render(<Container messages={messages} color={color}></Container>,document.querySelector('#root'));复制代码
使用props-type
context直接在父组件定义,子组件随用随调
import React from 'react';
import ReactDOM from 'react-dom';
import {PropTypes} from 'prop-types';//getChildContext
//childContextTypes
//Props.String
//用这个不稳定,因为可能会被覆盖?可能你不知道在哪传来的?class Container extends React.Component{getChildContext(){//返回context对象,并指定返回对象类型//使用了这个以后,所有的Container的子组件都会有这样的一个context对象return {color:'red'};}render(){return(<MessageList messages={this.props.messages}/>)}
}
//
Container.childContextTypes = {color:PropTypes.string
}
class MessageList extends React.Component{render(){return(<ul>{this.props.messages.map((message,index)=><Message message={message}/>)}</ul>)}
}
class Message extends React.Component{render(){return(<li style={{color:this.context.color}}>{this.props.message}</li>)}
}
Message.childContextTypes = {color:PropTypes.string
}let messages = [1,2,3];
let color = 'blue';
ReactDOM.render(<Container messages={messages} color={color}></Container>,document.querySelector('#root'));复制代码
props-type context相关推荐
- 3分钟了解 vue props type类型
用了很久的vue,有时候总觉得props type类型,总是有点模棱两可,今天来好好的盘盘他 props介绍: 都知道props是用来父给子传值的(单向的),HTML 中的 attribute 名是大 ...
- vue props type设置多个类型,默认值
vue props type设置多个类型 props: {value: {// vue props type设置多个类型type: Number | null,required: true},arti ...
- react中context到底是如何传递的-源码分析
react中使用context 基本要求就是 父组件中声明Parent.prototype.getChildContext 父组件中声明Parent.childContextType 子组件声明 Ch ...
- 10分钟学会React Context API
Create-react-app来学习这个功能: 注意下面代码红色的即可,非常简单. 在小项目里Context API完全可以替换掉react-redux. 修改app.js import React ...
- React 新 Context API 在前端状态管理的实践
2019独角兽企业重金招聘Python工程师标准>>> 本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较 ...
- React Context源码是怎么实现的呢
目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api.大多数项目不会直接使用 createContext 然后向下面传递数据,而是采用第三方库(react-redux). 想想项 ...
- React 源码系列 | React Context 详解
目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api.大多数项目不会直接使用 createContext 然后向下面传递数据,而是采用第三方库(react-redux). 想想项 ...
- antv L7地图报错:context lost at Funciton
某天疯狂渲染地图组件,大概17次来回切换,屏幕重新渲染地图,最终它还是没能扛下所有,不幸崩塌. 分析可能的原因: 1.由于L7地图画布一直累加在页面上,old context 无法回溯更新," ...
- 使用react的好处_聊一聊我对 React Context 的理解以及应用
前言 Context被翻译为上下文,在编程领域,这是一个经常会接触到的概念,React中也有. 在React的官方文档中,Context被归类为高级部分(Advanced),属于React的高级API ...
- 彻底理解react中的props
每天对自己多问几个为什么,总是有着想象不到的收获. 一个菜鸟小白的成长之路(copyer) 在react中 state 和 props是两个非常重要的属性,并且常用的属性.简单来说:都是用来保存数据 ...
最新文章
- htc one m7刷Linux,HTC One M7刷机教程 HTC One M7线刷教程
- 【lombok】使用lombok注解,在代码编写过程中可以调用到get/set方法,但是在编译的时候无法通过,提示找不到get/set方法...
- 解决Vue刷新一瞬间出现样式未加载完或者出现Vue代码问题
- 宝塔执行sh文件_宝塔面板未授权访问
- hibernate管理实体的三个状态
- 京东华为 Java开发历年经典题汇总
- Linux安装Typora
- dsc linux 软件安装_介绍一个linux各软件安装教程网站linuxize
- JS闭包中未使用的引用变量回收机制浅探
- 如何做到24小时监控某个网页,在网页变化或者更新的时候第一时间接到通知
- 汇编语言典型例子详解_经典汇编程序100例
- win10系统找不到telnet服务器,win10找不到telnet服务怎么办_win10没有telnet服务如何找回...
- DxO PhotoLab 2.1.2 for Mac精华汉化版 DxO PhotoLab 2.1.2 for Mac中文版
- iOS之TabbarController和NavigationController框架
- windows 的cmd设置代理方法
- 老旧笔记本安装(升级)黑群晖7.1
- Mahalanobis距离(马氏距离)
- java word转Pdf 指定字体库
- matlab实现动态规划算法
- 永远的忧郁王子,永远的巴乔