iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >React Props的原理是什么
  • 506
分享到

React Props的原理是什么

2023-06-26 06:06:36 506人浏览 独家记忆
摘要

本篇文章为大家展示了React Props的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。props理解props 是 React 组件通信最重要的手段props:对于在 Rea

本篇文章为大家展示了React Props的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    props理解

    props 是 React 组件通信最重要的手段

    props:对于在 React 应用中写的子组件,父组件绑定在它们标签里的 属性和方法,最终会变成 props 传递给它们。

    1)props 可以是:

    • ① props 作为一个子组件渲染数据源。

    • ② props 作为一个通知父组件的回调函数。

    • ③ props 作为一个单纯的组件传递。

    • ④ props 作为渲染函数。

    • ⑤ render props , 和④的区别是放在了 children 属性上。

    • ⑥ render component 插槽组件。

    function ChidrenComponent(){    return <div> In this chapter, let's learn about react props ! </div>}class PropsComponent extends React.Component{    componentDidMount(){        console.log(this,'_this')    }    render(){        const {  children , mes , renderName , say ,Component } = this.props        const renderFunction = children[0]        const renderComponent = children[1]                return <div>            { renderFunction() }            { mes }            { renderName() }            { renderComponent }            <Component />            <button onClick={ () => say() } > change content </button>        </div>    }}class Index extends React.Component{    state={          mes: "hello,React"    }    node = null    say= () =>  this.setState({ mes:'let us learn React!' })    render(){        return <div>            <PropsComponent                 mes={this.state.mes}  // ① props 作为一个渲染数据源               say={ this.say  }     // ② props 作为一个回调函数 callback               Component={ ChidrenComponent } // ③ props 作为一个组件               renderName={ ()=><div> my name is alien </div> } // ④ props 作为渲染函数            >                { ()=> <div>hello,world</div>  } {  }                <ChidrenComponent />             {  }            </PropsComponent>        </div>    }}

    2)props在React充当角色(3个角度):

    ① 组件层级

    •  父传子:props 和 子传父:props 的 callback

    • 将视图容器作为 props 进行渲染

    ② 更新机制

    在 fiber 调和阶段中,diff 可以说是 React 更新的驱动器,props 可以作为组件是否更新的重要准则

    (PureComponentmemo性能优化方案)

    ③ 插槽层面

    组件的闭合标签里的插槽,转化成 chidren 属性

    3)监听props改变:

    类组件: componentWillReceiveProps(废弃) componentWillReceiveProps(新)函数组件: useEffect (初始化会默认执行一次) props chidren模式

    ① props 插槽组件

    <Container>    <Children></Container>

    在 Container 组件中,通过 props.children 属性访问到 Chidren 组件,为 React element 对象。

    作用:

    • 可以根据需要控制 Chidren 是否渲染。

    • Container 可以用 React.cloneElement 强化 props (混入新的 props ),或者修改 Chidren 的子元素。

    ② render props模式

    <Container>   { (ContainerProps)=> <Children {...ContainerProps}  /> }</Container>————————————————————————————————————————————————————————————————————————————————Container组件:function  Container(props) {    const  ContainerProps = {        name: 'alien',        mes:'let us learn react'    }     return  props.children(ContainerProps)}

    根据需要控制 Chidren 渲染与否。可以将需要传给 Children 的 props 直接通过函数参数的方式传递给执行函数 children 。

    操作 props

    1、抽象 props

    用于跨层级传递 props ,一般不需要具体指出 props 中某个属性,而是将 props 直接传入或者是抽离到子组件中。

    1)混入 props

    给父组件 props 中混入某个属性,再传递给子组件

    function Son(props){    console.log(props)    return <div> hello,world </div>}function Father(props){    const fatherProps={        mes:'let us learn React !'    }    return <Son {...props} { ...fatherProps }  />}function Index(){    const indexProps = {        name:'alien',        age:'28',    }    return <Father { ...indexProps }  />}
    2)抽离 props

    从父组件 props 中抽离某个属性,再传递给子组件

    function Son(props){    console.log(props)    return <div> hello,world </div>}function Father(props){    const { age,...fatherProps  } = props    return <Son  { ...fatherProps }  />}function Index(){    const indexProps = {        age:'28',        mes:'let us learn React !'    }    return <Father { ...indexProps }  />}

    2、注入 props

    1)显式注入 props

    能够直观看见标签中绑定的 props

    function Son(props){    console.log(props)    return <div> hello,world </div>}function Father(props){    const fatherProps={        mes:'let us learn React !'    }    return <Son {...props} { ...fatherProps }  />}function Index(){    const indexProps = {        name:'alien',        age:'28',    }    return <Father { ...indexProps }  />}
    2)隐式注入 props

    一般通过 React.cloneElement 对 props.chidren 克隆再混入新的 props

    function Son(props){     console.log(props) // {name: "alien", age: "28", mes: "let us learn React !"}     return <div> hello,world </div>}function Father(prop){    return React.cloneElement(prop.children,{  mes:'let us learn React !' })}function Index(){    return <Father>        <Son  name="alien"  age="28"  />    </Father>}

    上述内容就是React Props的原理是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

    --结束END--

    本文标题: React Props的原理是什么

    本文链接: https://www.lsjlt.com/news/307181.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • React Props的原理是什么
      本篇文章为大家展示了React Props的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。props理解props 是 React 组件通信最重要的手段props:对于在 Rea...
      99+
      2023-06-26
    • react中props和state的区别是什么
      在React中,props和state是两个不同的概念,用于处理组件的数据。它们之间的区别如下:1. Props(属性):- Pro...
      99+
      2023-09-13
      react
    • React Hooks的原理是什么
      这篇文章主要讲解了“React Hooks的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React Hooks的原理是什么”吧!0x0...
      99+
      2024-04-02
    • React调度的原理是什么
      这篇文章主要介绍“React调度的原理是什么”,在日常操作中,相信很多人在React调度的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React调度的原理是什么”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-07-02
    • React-Redux的核心原理是什么
      这篇文章主要介绍“React-Redux的核心原理是什么”,在日常操作中,相信很多人在React-Redux的核心原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Re...
      99+
      2024-04-02
    • React setState异步原理是什么
      本文小编为大家详细介绍“React setState异步原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“React setState异步原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
      99+
      2023-07-04
    • react fiber执行原理是什么
      本文小编为大家详细介绍“react fiber执行原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react fiber执行原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为...
      99+
      2023-07-04
    • React的调度机制原理是什么
      这篇文章主要介绍“React的调度机制原理是什么”,在日常操作中,相信很多人在React的调度机制原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React的调度机制...
      99+
      2024-04-02
    • react数据绑定的原理是什么
      React数据绑定的原理是通过使用虚拟DOM(Virtual DOM)和组件的状态(state)来实现的。虚拟DOM是React中的...
      99+
      2023-09-13
      react
    • React合成事件的原理是什么
      这篇文章主要讲解了“React合成事件的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React合成事件的原理是什么”吧!事件介绍什么是事件?事件是在编程时系统内发生的动作或者发生...
      99+
      2023-07-02
    • React中合成事件的原理是什么
      本篇内容介绍了“React中合成事件的原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!事件介绍什么是事件事件是在编程时系统内发生的动...
      99+
      2023-07-05
    • React中的合成事件是什么原理
      目录事件介绍什么是事件React合成事件基础知识什么是合成事件为什么会有合成事件合成事件机制简述React合成事件实现原理事件注册React中模拟冒泡和捕获事件介绍 什么是事件 事件...
      99+
      2023-02-23
      React合成事件 React合成事件原理
    • React中Render Props模式有什么用
      这篇文章主要介绍React中Render Props模式有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述Render Props模式是一种非常灵活复用性非常高的模式,它可以...
      99+
      2024-04-02
    • Render props是什么
      小编给大家分享一下Render props是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Render propsRrender prop 是指一种在 Rea...
      99+
      2023-06-26
    • React前端框架实现原理是什么
      这篇文章主要介绍“React前端框架实现原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React前端框架实现原理是什么”文章能帮助大家解决问题。vdomreact 和 vue 都是基于 v...
      99+
      2023-07-02
    • react白屏原因是什么
      本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react白屏原因是什么?react history模式下的白屏问题近期,再用react的时候,由于不想用丑陋的hash,便将路由模式切换成history...
      99+
      2023-05-14
      React
    • react不是mvvm框架的原因是什么
      这篇“react不是mvvm框架的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
      99+
      2024-04-02
    • React组件里this指向了undefined的原理是什么
      这篇文章主要介绍“React组件里this指向了undefined的原理是什么”,在日常操作中,相信很多人在React组件里this指向了undefined的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
      99+
      2023-07-05
    • React调度系统Scheduler工作原理是什么
      这篇文章主要介绍“React调度系统Scheduler工作原理是什么”,在日常操作中,相信很多人在React调度系统Scheduler工作原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React调度...
      99+
      2023-07-05
    • react中使用node的原因是什么
      这篇文章主要讲解了“react中使用node的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react中使用node的原因是什么”吧! ...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作