React 之 函数式组件使用props

时间:2025-01-21 08:17:04
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>3_函数组件使用props</title> </head> <body> <!--准备好一个容器--> <div id="test1"></div> <div id="test2"></div> <!--引入react核心库--> <script type="text/javascript" src="../js/"></script> <!--引入react-dom,用于支持react操作DOM--> <script type="text/javascript" src="../js/"></script> <!--引入babel,用于将jsx转为js--> <script type="text/javascript" src="../js/"></script> <!--引入prop-types,用于将对组件标签属性进行限制--> <script type="text/javascript" src="../js/"></script> <script type="text/babel"> //<!--此处一定要写babel--> //创建组件 function Person(props){ const {name,gender,age} = props return ( <ul> <li>姓名:{name}</li> <li>性别:{gender}</li> <li>年龄:{age}</li> </ul> ) } Person.propTypes={ name:PropTypes.string.isRequired, //name指定为字符串类型,而且必须得填,不能为空 gender:PropTypes.string, age:PropTypes.number, speak:PropTypes.func, //限制speak为函数 } Person.defaultProps = { //如果gender或者age值为空,就使用默认值 gender:'男', age:18 } //渲染组件到页面 ReactDOM.render(<Person name="sandy" age={18} gender="女" speak={speak}/>,document.getElementById('test1')) const p={name:'小唐',age:18,gender:'女'} ReactDOM.render(<Person {...p}/>,document.getElementById('test2')) function speak(){ console.log('happy'); } </script> </body> </html>