最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react組件實例屬性props實例詳解

 更新時間:2023年01月30日 09:07:32   作者:K-L  
這篇文章主要介紹了react組件實例屬性props,本文結合實例代碼給大家簡單介紹了props使用方法,代碼簡單易懂,需要的朋友可以參考下

react組件實例屬性props

props

props簡單使用

   class Person extends React.Component {
            render() {
                return (
                    <ul>
                        <li>姓名:{this.props.name}</li>
                        <li>年齡:{this.props.age}</li>
                        <li>性別:{this.props.sex}</li>
                    </ul>
                )
            }
        }
        const root = ReactDOM.createRoot(document.getElementById('test'));
        // 這里props屬性要寫成key:"value"形式,但是會默認將value視為字符串,若想傳遞js類型的字面量,則要加{}
        root.render(<Person name="kl" age={19} sex="男" />);

props批量操作

 class Person extends React.Component {
            render() {
                return (
                    <ul>
                        <li>姓名:{this.props.name}</li>
                        <li>年齡:{this.props.age}</li>
                        <li>性別:{this.props.sex}</li>
                    </ul>
                )
            }
        }
        const root = ReactDOM.createRoot(document.getElementById('test'));
        const p = { name: "lml", sex: "nan", age: 18 }
        root.render(<Person {...p} />);

props屬性類型限制

需要導入prop-type

https://unpkg.com/prop-types@15.6/prop-types.js

 class Person extends React.Component {
            render() {
                return (
                    <ul>
                        <li>姓名:{this.props.name}</li>
                        <li>年齡:{this.props.age + 1}</li>
                        <li>性別:{this.props.sex}</li>
                    </ul>
                )
            }
        }
        // 對props限制
        Person.propTypes = {
            name: PropTypes.string.isRequired,
            sex: PropTypes.string,
            age: PropTypes.number,
            speak: PropTypes.func, // 限制為函數
        }
        // props默認值
        Person.defaultProps = {
            sex: '不男不女',
            age: 18,
        }
        function speak() {
            console.log('說話了');
        }
        const root = ReactDOM.createRoot(document.getElementById('test'));
        // 這里props屬性要寫成key:"value"形式,但是會默認將value視為字符串,若想傳遞js類型的字面量,則要加{}
        root.render(<Person name="lml" age={19} speak={speak} />);

props屬性限制的簡寫

class Person extends React.Component {
            // 對props限制
            static propTypes = {
                name: PropTypes.string.isRequired,
                sex: PropTypes.string,
                age: PropTypes.number,
                speak: PropTypes.func, // 限制為函數
            }
            // props默認值
            static defaultProps = {
                sex: '不男不女',
                age: 18,
            }
 
            render() {
                return (
                    <ul>
                        <li>姓名:{this.props.name}</li>
                        <li>年齡:{this.props.age + 1}</li>
                        <li>性別:{this.props.sex}</li>
                    </ul>
                )
            }
        }
 
        const root = ReactDOM.createRoot(document.getElementById('test'));
 
        root.render(<Person name="lml" age={19} />);

函數組件使用props

function People(props) {
            return (
                <ul>
                    <li>name:{props.name}</li>
                    <li>age:{props.age}</li>
                </ul>
            )
        }
        const root = ReactDOM.createRoot(document.getElementById('test'));
 
        root.render(<People name="lml" age={19} />);

補充:React之組件實例的三大屬性之props

props

每個組件對象都會有props(properties的簡寫)屬性
組件標簽的所有屬性都保存在props中
通過標簽屬性從組件外向組件內傳遞變化的數據,組件內不能夠修改props數據

實例

做一個能夠展示姓名、學號、性別的列表組件,并且能夠設置默認值。
這里就需要用到之前沒用到的prop-types.js了
為了防止react太笨重,就將限制類型的模塊單獨抽了出來,方便選擇是否使用,需要使用導入即可。

<!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="test1"></div>
    <div id="test2"></div>
    <div id="test3"></div>
    <div id="test4"></div>
    <script src="../js/react.development.js"></script>
    <script src="../js/react-dom.development.js"></script>
    <script src="../js/babel.min.js"></script>
    <script src="../js/prop-types.js"></script>
    <script type="text/babel">
        class Person extends React.Component {
        //對標簽屬性進行類型、必要性的限制
        static propTypes = {
            name:PropTypes.string.isRequired, //限制name必傳,且為字符串
            sex:PropTypes.string,
            age:PropTypes.number, //限制為數字
            speak:PropTypes.func //限制為函數
        }
        //指定模標簽屬性值
        static defaultProps ={
            sex:"男",
            age:18
        }
        
        render() {
                //props只讀不能改
                const {name, age, gender} = this.props
                return (
                    <ul>
                        <li>{name}</li>
                        <li>{age}</li>
                        <li>{gender}</li>
                    </ul>
                )
            }
        }

        ReactDOM.render(<Person name="tom" age={19} gender="男"/>, document.getElementById("test1"))
        ReactDOM.render(<Person name="pretty" gender="女"/>, document.getElementById("test2"))
        ReactDOM.render(<Person name="hunter" age={21} gender="男"/>, document.getElementById("test3"))

        const p = {name:"AABB", age:19, gender:"UNK"}
        //展開運算符
        ReactDOM.render(<Person {...p}/>, document.getElementById("test4"))
        function speak(){
            console.log("speaking...")
        }
    </script>
</body>
</html>

前言萬語都在注釋里,運行結果:

在這里插入圖片描述

如果我們將AABB的age改成字符型

const p = {name:"AABB", age:"19", gender:"UNK"}

那么結果如下:

在這里插入圖片描述

會警告數據類型錯誤,達到限制數據類型的提示。

到此這篇關于react組件實例屬性props的文章就介紹到這了,更多相關react組件實例屬性props內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • React 實現井字棋的示例代碼

    React 實現井字棋的示例代碼

    本文主要介紹了React 實現井字棋,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • React的diff算法核心復用圖文詳解

    React的diff算法核心復用圖文詳解

    這篇文章主要為大家介紹了React的diff算法核心復用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Rect Intersection判斷兩個矩形是否相交

    Rect Intersection判斷兩個矩形是否相交

    這篇文章主要為大家介紹了Rect Intersection判斷兩個矩形是否相交的算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 一起來了解React的Hook

    一起來了解React的Hook

    這篇文章主要為大家詳細介紹了React的Hook,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • React-hook-form-mui基本使用教程(入門篇)

    React-hook-form-mui基本使用教程(入門篇)

    react-hook-form-mui可以幫助開發(fā)人員更輕松地構建表單,它結合了React?Hook?Form和Material-UI組件庫,使用react-hook-form-mui,開發(fā)人員可以更快速地構建表單,并且可以輕松地進行表單驗證和數據處理,本文介紹React-hook-form-mui基本使用,感興趣的朋友一起看看吧
    2024-02-02
  • 使用hooks寫React組件需要注意的5個地方

    使用hooks寫React組件需要注意的5個地方

    這篇文章主要介紹了使用hooks寫React組件需要注意的5個地方,幫助大家更好的理解和學習使用React組件,感興趣的朋友可以了解下
    2021-04-04
  • react實現換膚功能的示例代碼

    react實現換膚功能的示例代碼

    這篇文章主要介紹了react實現換膚功能的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 關于React動態(tài)修改元素樣式的三種方式

    關于React動態(tài)修改元素樣式的三種方式

    這篇文章主要介紹了關于React動態(tài)修改元素樣式的三種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • JavaScript中React 面向組件編程(下)

    JavaScript中React 面向組件編程(下)

    在React面向組件編程中,除了上一章節(jié)的組件實例的三大核心屬性以外,還有很多重要的內容比如:React 的生命周期,受控組件與非受控組件,高階函數和函數柯里化的理解等,在本文中會給大家繼續(xù)講解React 面向組件編程中剩余的內容
    2023-03-03
  • webpack打包react項目的實現方法

    webpack打包react項目的實現方法

    這篇文章主要介紹了webpack打包react項目的實現方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06

最新評論

台州市| 大渡口区| 五家渠市| 海门市| 沁阳市| 格尔木市| 会泽县| 平潭县| 汉川市| 句容市| 广东省| 海原县| 睢宁县| 株洲县| 大渡口区| 南涧| 靖江市| 仁寿县| 自治县| 盐边县| 正阳县| 车致| 建湖县| 浦江县| 平昌县| 信阳市| 永顺县| 福建省| 时尚| 赤城县| 康马县| 洪湖市| 新巴尔虎左旗| 淮阳县| 玉田县| 洪江市| 抚远县| 都匀市| 逊克县| 大关县| 宁安市|