传统的父子组件传值 : 这样要一层一层往下传,会带来诸多不便

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相关推荐

  1. 3分钟了解 vue props type类型

    用了很久的vue,有时候总觉得props type类型,总是有点模棱两可,今天来好好的盘盘他 props介绍: 都知道props是用来父给子传值的(单向的),HTML 中的 attribute 名是大 ...

  2. vue props type设置多个类型,默认值

    vue props type设置多个类型 props: {value: {// vue props type设置多个类型type: Number | null,required: true},arti ...

  3. react中context到底是如何传递的-源码分析

    react中使用context 基本要求就是 父组件中声明Parent.prototype.getChildContext 父组件中声明Parent.childContextType 子组件声明 Ch ...

  4. 10分钟学会React Context API

    Create-react-app来学习这个功能: 注意下面代码红色的即可,非常简单. 在小项目里Context API完全可以替换掉react-redux. 修改app.js import React ...

  5. React 新 Context API 在前端状态管理的实践

    2019独角兽企业重金招聘Python工程师标准>>> 本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较 ...

  6. React Context源码是怎么实现的呢

    目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api.大多数项目不会直接使用 createContext 然后向下面传递数据,而是采用第三方库(react-redux). 想想项 ...

  7. React 源码系列 | React Context 详解

    目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api.大多数项目不会直接使用 createContext 然后向下面传递数据,而是采用第三方库(react-redux). 想想项 ...

  8. antv L7地图报错:context lost at Funciton

    某天疯狂渲染地图组件,大概17次来回切换,屏幕重新渲染地图,最终它还是没能扛下所有,不幸崩塌. 分析可能的原因: 1.由于L7地图画布一直累加在页面上,old context 无法回溯更新," ...

  9. 使用react的好处_聊一聊我对 React Context 的理解以及应用

    前言 Context被翻译为上下文,在编程领域,这是一个经常会接触到的概念,React中也有. 在React的官方文档中,Context被归类为高级部分(Advanced),属于React的高级API ...

  10. 彻底理解react中的props

    每天对自己多问几个为什么,总是有着想象不到的收获. 一个菜鸟小白的成长之路(copyer) ​在react中 state 和 props是两个非常重要的属性,并且常用的属性.简单来说:都是用来保存数据 ...

最新文章

  1. htc one m7刷Linux,HTC One M7刷机教程 HTC One M7线刷教程
  2. 【lombok】使用lombok注解,在代码编写过程中可以调用到get/set方法,但是在编译的时候无法通过,提示找不到get/set方法...
  3. 解决Vue刷新一瞬间出现样式未加载完或者出现Vue代码问题
  4. 宝塔执行sh文件_宝塔面板未授权访问
  5. hibernate管理实体的三个状态
  6. 京东华为 Java开发历年经典题汇总
  7. Linux安装Typora
  8. dsc linux 软件安装_介绍一个linux各软件安装教程网站linuxize
  9. JS闭包中未使用的引用变量回收机制浅探
  10. 如何做到24小时监控某个网页,在网页变化或者更新的时候第一时间接到通知
  11. 汇编语言典型例子详解_经典汇编程序100例
  12. win10系统找不到telnet服务器,win10找不到telnet服务怎么办_win10没有telnet服务如何找回...
  13. DxO PhotoLab 2.1.2 for Mac精华汉化版 DxO PhotoLab 2.1.2 for Mac中文版
  14. iOS之TabbarController和NavigationController框架
  15. windows 的cmd设置代理方法
  16. 老旧笔记本安装(升级)黑群晖7.1
  17. Mahalanobis距离(马氏距离)
  18. java word转Pdf 指定字体库
  19. matlab实现动态规划算法
  20. 永远的忧郁王子,永远的巴乔

热门文章

  1. W3cshool的html表单标签和元素内容思维导图笔记整理
  2. Django Vue 搭建相亲网站
  3. 【MPLS】LDP保留的标签
  4. unitoy机器人怎么联网_unitoy智能机器人配网
  5. 圣诞节诗歌-最美的礼物—赞美之泉
  6. 影响 SEO 的排名优化的因素
  7. 介绍Jackson JsonNode和ObjectNode
  8. win浏览器(edge)如何无痕浏览
  9. 手把手教你vuex写个简单的购物车DEMO
  10. 干什么挣钱快,2个冷门项目让你迅速发家致富