当前位置: 首页 > news >正文

做网站 搞流量百度免费seo

做网站 搞流量,百度免费seo,免费手机网站申请,如今做知乎类网站怎么样组件的props是只读的,组件不能修改自己的props,在React中,组件可以接受任意的props,如函数,对象,基本类型以及react元素 一.props的使用 1.一些组件并不需要知道自己的children,尤其是像Sidebar…

组件的props是只读的,组件不能修改自己的props,在React中,组件可以接受任意的props,如函数,对象,基本类型以及react元素

一.props的使用

1.一些组件并不需要知道自己的children,尤其是像Sidebar和Dialog这通用'boxes'的组件。在这些组件中,我们推荐使用特别的children props直接将孩子元素传递到组件中。

 

function FancyBorder(props){return(<div>{props.children}</div>)
}
function WelcomeDialog(props){return <FancyBorder><h1>Welcome</h1><p>Thank you for visiting our spacecraft!</p></FancyBorder>
}

 

 在<FancyBorder>中的任何tag都将作为children props传递到FancyBorder组件中

2.你除了可以通过children props直接向组件中传递子元素,你也可以按照你自己的习惯,而不是使用children

function FancyBorder(props){return <div>{props.top}{props.bottom}</div>
}
function WelcomeDialog(props){return <FancyBorder top={<Top/>} bottom={<Bottom/>} />
}
function Top(props){return <p> I am top</p>
}
function Bottom(props){return <p>I am bottom</p>
}

 因为React元素(如:<Top>,<Bottom>)只是对象,所以可以将它们作为props传递到其他组件中

3.在某些情况下可能需要基于一个普通的组件创建出一个特别的组件。如通过Dialog组件创建出WelcomeDialog组件。在这里我们可以通过配置Dialog组件的props创建出特别的
WelcomeDialog组件。

 

function Dialog(props) {return (<FancyBorder color="blue"><h1 className="Dialog-title">{props.title}</h1><p className="Dialog-message">{props.message}</p></FancyBorder>);
}function WelcomeDialog() {return (<Dialogtitle="Welcome"message="Thank you for visiting our spacecraft!" />);
}

 

二.propTypes

从React15.5起,React.PropTypes被移入到单独的package中。react提供了一个package(prop-types)去检查props的类型。首先需要将prop-types引用到文件中。

import PropTypes from 'prop-types'

PropTypes暴露了一系列能够确定接受的props是否合法的验证器,出于性能的考虑,PropTypes在开发模式下才会起作用

 

import PropTypes from 'prop-types'class Greeting extends React.Component{render(){return <div>welcome,{this.props.name}</div>}}Greeting.propTypes = {name:PropTypes.string}

 

 prop-types提供了大量的验证器,举例如下:

import PropTypes from 'prop-types'
myComponent.propTypes = {// 数组optionalArray: PropTypes.array,// 布尔值optionalBool: PropTypes.bool,// 函数optionalFunc: PropTypes.func,// 数值optionalNumber: PropTypes.number,// 对象optionalObject: PropTypes.object,// 字符串optionalString: PropTypes.string,// symboloptionalSymbol: PropTypes.symbol,// 能够被渲染的数值,字符串,元素或者包含这些类型的数组optionalNode: PropTypes.node,// React元素optionalElement: PropTypes.element,// optionalMessage是Message类的实例optionalMessage: PropTypes.instanceOf(Message),// optionalEnum为['News', 'Photos']中的其中一个optionalEnum: PropTypes.oneOf(['News', 'Photos']),//optionalUnion要么为字符串,要么为数值,要么为Message实例optionalUnion: PropTypes.oneOfType([PropTypes.string,PropTypes.number,PropTypes.instanceOf(Message)]),// optionalArrayOf是数值类型的数组optionalArrayOf: PropTypes.arrayOf(PropTypes.number),// optionalObjectOf的属性是数值optionalObjectOf: PropTypes.objectOf(PropTypes.number),// requiredFunc是函数,且必须提供。isRequired可以链接到任何值后面requiredFunc: PropTypes.func.isRequired,// requiredAny可以是任何类型,且必须提供requiredAny: PropTypes.any.isRequired,// 自定义验证器。customProp中必须包含matchmecustomProp: function(props, propName, componentName) {if (!/matchme/.test(props[propName])) {return new Error('Invalid prop `' + propName + '` supplied to' +' `' + componentName + '`. Validation failed.');}},// 自定义数组,对象类型的验证器// 验证器会调用数组或者对象中的每一个值// customArrayProp中的每一个值都要包含matchmecustomArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) {if (!/matchme/.test(propValue[key])) {return new Error('Invalid prop `' + propFullName + '` supplied to' +' `' + componentName + '`. Validation failed.');}})
}

 给props指定默认值

通过组件的defaultProps属性可以给组件的props指定默认值

import PropTypes from 'prop-types'
class Greeting extends React.Component{render(){return <div>welcome,{this.props.name}</div>}
}
Greeting.defaultProps = {name:'lili'
}

 

转载于:https://www.cnblogs.com/QxQstar/p/7581986.html

http://www.lbrq.cn/news/2594269.html

相关文章:

  • 网站优化哪家好搜狗搜索引擎优化
  • 黑龙江公司网站建设seo建站要求
  • 深圳企业模板建站互联网营销公司
  • 湖北网页专业seo培训
  • 专业网站建设阿里云网站快照优化公司
  • 重庆建一个网站如何做市场推广方案
  • 网站建设台州网络推广怎么做效果好
  • 去年做的电子请帖怎么找原网站站长统计工具
  • 山东省城乡住房建设厅网站百度一下你就知道 官网
  • 网站制作软件是什么服务营销理论
  • 苏州推广有限公司荥阳seo
  • 营销网站的概念搜索引擎营销成功案例
  • 学习做网站需要多久网站设计费用
  • 自己如何做网站优化东莞全网推广
  • 做社区网站软件开发培训机构
  • 在线聊天网站怎么做百度问答怎么赚钱
  • 怎样做咨询网站google官网注册账号入口
  • 手机医疗网站模板qq营销
  • 直播教育网站建设seo网站推广全程实例
  • 1t网站空间主机多少钱百度怎么打广告在首页
  • wordpress有广告插件下载武汉seo首页优化公司
  • 公关公司主要做什么seo综合查询怎么用
  • 聊城做网站价位seo服务优化
  • 深圳顶级做网站公司seo怎么搞
  • 做电脑网站手机能显示肇庆网站建设
  • wordpress带支付功能主题重庆seo扣费
  • 专利减缓在哪个网站上做什么叫软文
  • 网站建设 熊掌号seo优化推广业务员招聘
  • 帝国cms如何做电影网站今日头条热搜榜前十名
  • 专做商品折扣的网站系统推广公司
  • SQL基础语法
  • 2.Java和C++有什么区别
  • pycharm上如何添加conda环境
  • 一个网页的加载过程详解
  • vscode的Remote-SSH插件配置SSH主机方法
  • 入门MicroPython+ESP32:安装逗脑IDE及驱动