当前位置: 首页> 娱乐> 影视 > boss直聘招聘官网_设计师个人作品集网站_怎么免费创建自己的网站_佛山做网站推广的公司

boss直聘招聘官网_设计师个人作品集网站_怎么免费创建自己的网站_佛山做网站推广的公司

时间:2025/7/12 20:49:33来源:https://blog.csdn.net/2301_76671906/article/details/147057557 浏览次数:1次
boss直聘招聘官网_设计师个人作品集网站_怎么免费创建自己的网站_佛山做网站推广的公司

1.类式组件props基本数据读取与解构运算符传递

 <script type="text/babel">//  创建组件class PersonalInfo extends React.Component {render() {// 读取props属性 并读取值console.log('props',this.props);return(<ul><li>姓名:{this.props.name}</li><li>性别:{this.props.gender}</li><li>年龄:{this.props.age}</li></ul>) }}// 渲染组件const p ={name:'岂不闻',gender:'男',age:'24'}// 展开运算符  解构赋值 babel+react 解构运算符 仅使用与标签中数据传递ReactDOM.render(<PersonalInfo {...p} />,document.getElementById('test1'))ReactDOM.render(<PersonalInfo name='呀呀呀' gender='女' age='23' />,document.getElementById('test2'))</script>

2.类式组件propTypes校验props传递数据规则

propTypes是react提供的一种工具,对于组件的props进行类型检查

 2.1 html引入prop-types.js
 <!--  {/* // 引入 PropTypes */} --><script src="https://unpkg.com/prop-types@15.6.2/prop-types.js"></script>
2.2 react脚手架引入
npm install prop-types
2.3 propTypes验证器声明类型

基本数据类型

PropTypes.string:字符串
PropTypes.number:数字
PropTypes.boolean:布尔值
PropTypes.object:对象
PropTypes.array:数组
PropTypes.func:函数
PropTypes.symbol:Symbol

特殊类型

PropTypes.node:任何可以被渲染的内容:数字、字符串、元素或数组(包括这些类型)
PropTypes.element:React元素
PropTypes.instanceOf(Class):某个类的实例

组合类型

PropTypes.oneOf(['option1', 'option2']):枚举类型,值必须是所提供选项之一
PropTypes.oneOfType([PropTypes.string, PropTypes.number]):多个类型中的一个
PropTypes.arrayOf(PropTypes.number):某种类型组成的数组
PropTypes.objectOf(PropTypes.number):某种类型组成的对象
PropTypes.shape({ key: PropTypes.string, value: PropTypes.number }):具有特定形状的对象
2.4具体代码例子

 指定标签默认属性

        // 指定标签默认属性PersonalInfo.defaultProps = {name: '未知',gender: '未知',age: 0}

 props传递限制传递数据规则

 PersonalInfo.propTypes = {// 限定为字符串类型 必填项name: PropTypes.string.isRequired,gender: PropTypes.string.isRequired,age: PropTypes.number.isRequired}

扩展运算符批量传入

        // 渲染组件const p ={name:'岂不闻',gender:'男',age:'24'}// 展开运算符  解构赋值 babel+react 解构运算符 仅使用与标签中数据传递ReactDOM.render(<PersonalInfo {...p} />,document.getElementById('test1'))

 整体代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Hello,React</title>
</head><body><!-- 容器 --><div id="test1"></div><!-- 容器 --><div id="test2"></div><!-- {/* // 引入 React核心库 */} --><script src="https://unpkg.com/react@16/umd/react.production.min.js"></script><!-- {/* // 引入 react-dom 用于支持 react 操作 DOM */} --><script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script><!-- {/* // 引入 babel:1. ES6 ==> ES5 2. jsx ==> js */} --><script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script><!--  {/* // 引入 PropTypes */} --><script src="https://unpkg.com/prop-types@15.6.2/prop-types.js"></script><script type="text/babel">//  创建组件class PersonalInfo extends React.Component {render() {// 读取props属性 并读取值console.log('props',this.props);const {name,gender,age} = this.props;return(<ul><li>姓名:{name}</li><li>性别:{gender}</li><li>年龄:{age}</li></ul>) }}// 指定标签默认属性PersonalInfo.defaultProps = {name: '未知',gender: '未知',age: 0}// props传递限制传递数据规则PersonalInfo.propTypes = {// 限定为字符串类型 必填项name: PropTypes.string.isRequired,gender: PropTypes.string.isRequired,age: PropTypes.number.isRequired}// 渲染组件const p ={name:'岂不闻',gender:'男',age:'24'}// 展开运算符  解构赋值 babel+react 解构运算符 仅使用与标签中数据传递ReactDOM.render(<PersonalInfo {...p} />,document.getElementById('test1'))ReactDOM.render(<PersonalInfo name='呀呀呀' gender='女' age='23' />,document.getElementById('test2'))</script>
</body></html>

3.类式组件props的简写方式 (static 关键字)

 <script type="text/babel">// 创建组件class PersonalInfo extends React.Component {// 指定标签默认属性static defaultProps = {name: '未知',gender: '未知',age: 0}// props传递限制传递数据规则static propTypes = {// 限定为字符串类型 必填项name: PropTypes.string.isRequired,gender: PropTypes.string.isRequired,age: PropTypes.number.isRequired}render() {// 读取props属性 并读取值console.log('props',this.props);const {name,gender,age} = this.props;return(<ul><li>姓名:{name}</li><li>性别:{gender}</li><li>年龄:{age}</li></ul>) }}// 渲染组件const p ={name:'岂不闻',gender:'男',age:'24'}// 展开运算符  解构赋值 babel+react 解构运算符 仅使用与标签中数据传递ReactDOM.render(<PersonalInfo {...p} />,document.getElementById('test1'))ReactDOM.render(<PersonalInfo name='呀呀呀' gender='女' age='23' />,document.getElementById('test2'))</script>

 4.函数式组件props的使用

 <script type="text/babel">// 指定标签默认属性PersonalInfo.defaultProps = {name: '未知',gender: '未知',age: 0}//  props传递限制传递数据规则PersonalInfo.propTypes = {// 限定为字符串类型 必填项name: PropTypes.string.isRequired,gender: PropTypes.string.isRequired,age: PropTypes.number.isRequired}// 函数式组件function PersonalInfo(props){// 解构赋值const {name,gender,age} = props;return(<ul><li>姓名:{name}</li><li>性别:{gender}</li><li>年龄:{age}</li></ul>) }// 组件渲染ReactDOM.render(<PersonalInfo name='呀呀呀' gender='女' age='23' />,document.getElementById('test2'))</script>
关键字:boss直聘招聘官网_设计师个人作品集网站_怎么免费创建自己的网站_佛山做网站推广的公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: