对props进行限制

简介: 对props进行限制

1.在对年龄加一的操作时,会出现一丢丢的小问题


<li>age is{age+1}</li>
const p={name:"laozhichi",age:19,address:"leizhou"}

这种类型就可以,得到20,但是不方便数据传入等等


<li>age is{age+1}</li>
const p={name:"laozhichi",age:"19",address:"leizhou"}

这种类型相当于字符串拼接,得到191


<li>age is{age+1}</li>
const p={name:"laozhichi",age:{19},address:"leizhou"}

这种类型就可以


2.对对象传入数据进行限制的时候

<!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>Document</title>
</head>
<body>
    <div id="test"></div>
    <script src="./react-resource/react.development.js"></script>
    <script src="./react-resource/react-dom.development.js"></script>
    <script src="./react-resource/babel.min.js"></script>
    <script src="./react-resource/prop-types.js"></script>
    <script type="text/babel">
        class Person extends React.Component{
            render(){
                const {name,age,address}=this.props;
                return (
                    <ul>
                        <li>name is{name}</li>
                        <li>age is{age+1}</li>
                        <li>address is {address}</li>
                    </ul>
                )
            }
        }
        Person.propTypes={
            name:PropTypes.string.isRequired,
            // 在这里表示name设置为字符串类型,并且必须要填写
        }
        const p={age:19,address:"leizhou"}
        ReactDOM.render(<Person {...p}/>,document.getElementById("test"));
 </script>
</body>
</html>

如果不传入name数据,那么就会报错



3.传入函数对象的限制

<!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>Document</title>
</head>
<body>
    <div id="test"></div>
    <script src="./react-resource/react.development.js"></script>
    <script src="./react-resource/react-dom.development.js"></script>
    <script src="./react-resource/babel.min.js"></script>
    <script src="./react-resource/prop-types.js"></script>
    <script type="text/babel">
        class Person extends React.Component{
            render(){
                const {name,age,address}=this.props;
                return (
                    <ul>
                        <li>name is{name}</li>
                        <li>age is{age+1}</li>
                        <li>address is {address}</li>
                    </ul>
                )
            }
        }
        Person.propTypes={
            name:PropTypes.string.isRequired,
            // 在这里表示name设置为字符串类型,并且必须要填写
            sex:PropTypes.string,
            age:PropTypes.number,
            speak:PropTypes.func,
            // 在这里表示传入函数对象,记住在这里必须要用func,不用function,否则与内置对象相互冲突
        }
        Person.defaaltProps={
            sex:"不男不女",
        }
        // 在这里设置默认值
        const p={age:19,address:"leizhou",speak:{speak}}
        // speak表示传入函数对象
        ReactDOM.render(<Person {...p}/>,document.getElementById("test"));
        function speak(){
        }
 </script>
</body>
</html>


相关文章
|
30天前
|
前端开发
React中Props的详细使用和props的校验
React中Props的详细使用和props的校验
|
8月前
|
JavaScript
56Vue - Props(camelCase vs. kebab-case)
56Vue - Props(camelCase vs. kebab-case)
18 0
|
30天前
|
JavaScript
vue 传递 props
vue 传递 props
|
10月前
|
JavaScript
3分钟了解 vue props type类型
3分钟了解 vue props type类型
277 0
|
30天前
|
JavaScript
什么是Props?
什么是Props?
12 1
|
30天前
|
JavaScript 前端开发 安全
Vue3的Props
Vue3的Props
31 0
|
30天前
|
JavaScript
【Vue3】Props的使用详解
【Vue3】Props的使用详解
|
30天前
|
前端开发
对比state和props的区别
对比state和props的区别
|
6月前
|
JavaScript
【Vue】—props属性
【Vue】—props属性
|
8月前
55Vue - Props(使用Props传递数据)
55Vue - Props(使用Props传递数据)
44 0