React中props

今天让我们开启新的篇章好吧,来搞一搞React,以下所有操作都是我个人的一些理解,如果有错吴还请指出,想要看更全的可以去React官网可能一下子好吧 昨天按摩没到位,导致今天身体不太行,撸码千万别苦了自己,活着最重要 我们先来搞一搞React中props的使用,React项目的基本搭建我就不做了,很简单。直接开始上内容好吧 1.和Vue一样React也使用props来进行父组件往子组件传参,基本使用还是很简单的 步骤: 1.父组件调用子组件时传入属性 2.子组件直接通过this.props.属性名 即可拿到父组件传过来的值   复制代码 import React, { Component,Fragment} from 'react'; //React的props传参 // 父组件 class App extends Component { render() { return ( ) } } // 子组件 class Child extends Component{ render(){ return (
{this.props.aaa}
) } } export default App; 复制代码 (我在这里提醒一句,文章所有代码都运行在搭好的React环境中,千万别拉到本地直接扔到一个html文件里,一运行一看运行不起来,这就好比在一个没有空气的星球,试图靠空气生存一样,空气都没有,你说能活下去嘛) 运行结果: 2.现在基本传参可以了,那能不能传点别的过去,当然可以,要是只能传参数岂不是很鸡肋,下面我们来试试能不能传一个函数过去,当然是可以的 步骤:1.在父组件里定义一个函数    2.调用子组件时将函数传过去    3.子组件通过this.props.函数名()来调用函数并且执行 复制代码 import React, { Component,Fragment} from 'react'; //React的props传参 // 父组件 class App extends Component { render() { return ( ) } hanshu(){ return "我是父组件传过来的函数" }} // 子组件 class Child extends Component{ render(){ return (
{this.props.aaa}{this.props.bbb()}
) } } export default App; 复制代码 运行结果: 3.学过Vue的同学可能会知道Vue里面是可以对props传过来的值进行验证的,比如他的类型,是否为空,默认值等等,那在我们的React中有没有对props进行验证呢,答案是肯定的   只不过React的props验证没有Vue的验证用起来方便,下面我们来看一看React中props具体是怎么验证的   1.安装props-type     yarn add prop-types   2.引入prop-types   3.愉快的使用两个属性来进行验证       1.propTypes:用来验证类型和是否必传       2.defaultProps:用来设置未传参时的默认值    下面我们直接将代码发上来好吧      复制代码 import React, { Component,Fragment} from 'react'; import PropTypes from 'prop-types' //React的props传参 // 父组件 class App extends Component { render() { return ( ) }} // 子组件 class Child extends Component{ render(){ return (
{this.props.aaa}
{this.props.bbb}
{this.props.ccc}
{this.props.ddd}
) } } //对传过来的props进行验证 //验证类型和是否必传 Child.propTypes = { // 传入aaa的类型必须为number(不传不会报错,仅仅是限制已传入的参数类型) aaa:PropTypes.number, //必须传入bbb bbb:PropTypes.isRequired, //必须传入ccc且类型必须为 ccc:PropTypes.string.isRequired } //设置默认值 Child.defaultProps = { ddd:"默认值" } export default App; 复制代码 运行结果:            我先来解释解释这两个错误 1:aaa类型传入为string,期望为number                  2.bbb需要被传入     我们可以看到结果都显示了,但是报错了,所以我们得到一个结论,验证不通过会报错,但是实际上并不影响我们页面的正常显示 上面我们进行是讲props的验证放到了类的定义外面,放到外面感觉有点分离了,那我们能不能拿到里面来呢,当然可以了,下面我们来看看另一种写法     利用static静态属性将验证写在类的里面     下面直接上代码      复制代码 import React, { Component,Fragment} from 'react'; import PropTypes from 'prop-types' //React的props传参 // 父组件 class App extends Component { render() { return ( ) }} // 子组件 class Child extends Component{ render(){ return (
{this.props.aaa}
{this.props.bbb}
{this.props.ccc}
{this.props.ddd}
) } static propTypes = { // 传入aaa的类型必须为number(不传不会报错,仅仅是限制已传入的参数类型) aaa:PropTypes.number, //必须传入bbb bbb:PropTypes.string.isRequired, //必须传入ccc且类型必须为 ccc:PropTypes.string.isRequired } static defaultProps = { ddd:"默认值" } } export default App; 复制代码 好了,暂时关于React中的props我就写这些,大家有需要的可以参考参考,如有错误,请以官方文档为准,溜了溜了,用膳去https://www.cnblogs.com/suihang/p/9978859.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信