首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

super(props) 真的那么重要吗?

事实证明,在调用构造函数后,React也会在实例上分配props: ? 因此,即使你忘记将props传给 super(),React 仍然会在之后设置它们。 这是有原因的。...当然,React 稍后会在你的构造函数运行后分配 this.props, 但是在调用 super() 之后和构造函数结束前这段区间内 this.props 仍然是未定义的: ?...这样就确保了能够在构造函数结束之前设置好 this.props。 ---- 最后一点是长期以来 React 用户总是感到好奇的。...你可能已经注意到,当你在类中使用Context API时(无论是旧版的 contextTypes 或在 React 16.6中新添加的 contextType API),context 会作为第二个参数传递给构造函数...如果没有显式构造函数,则会自动传递所有参数。 这允许在像 state = {} 这样的表达式中包含对 this.props或 this.context 的引用(如果有必要的话)。

1.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ReactJS分析之入口函数render

    前言   在使用React进行构建应用时,我们总会有一个步骤将组建或者虚拟DOM元素渲染到真实的DOM上,将任务交给浏览器,进而进行layout和paint等步骤,这个函数就是React.render...ReactElement类型解读          ReactElement类型通过函数React.createElement()创建,接口定义如下: ReactElement createElement...但是组件的创建却并不简单,我们通过React.createClass创建ReactClass类,它是ReactComponent的构造函数,不同于正常的对象创建,组件的创建由React接管,即我们无须对其实例化...__reactAutoBindMap) { bindAutoBindMethods(this); } this.props = props; this.context...' + name; } } } } } } }         createClass返回一个Constructor构造函数

    1.1K90

    react面试题总结一波,以备不时之需

    React组件的构造函数有什么作用?它是必须的吗?...构造函数主要用于两个目的:通过将对象分配给this.state来初始化本地状态将事件处理程序方法绑定到实例上所以,当在React class中需要设置state的初始值或者绑定事件时,需要加上构造函数,..., 为了性能等考虑, 尽量在constructor中绑定事件除了在构造函数中绑定 this,还有其它方式吗你可以使用属性初始值设定项(property initializers)来正确绑定回调,create-react-app...在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。什么原因会促使你脱离 create-react-app 的依赖当你想去配置 webpack 或 babel presets。...用法:在父组件上定义getChildContext方法,返回一个对象,然后它的子组件就可以通过this.context属性来获取import React,{Component} from 'react'

    66730

    React 入门学习(十七)-- React 扩展

    setState 这种用法我也是第一次见,函数式的 setState 也是接收两个参数 第一个参数是 updater ,它是一个能够返回 stateChange 对象的函数 第二个参数是一个回调函数,...库中暴露一个 lazy 函数 import React, { Component ,lazy} from 'react'; 然后我们需要更改引入组件的方式 const Home = lazy(() =...('被调用了');}) 由于函数的特性,我们可以在函数中随意的编写函数,这里我们调用了 useEffect 函数,这个函数有多个功能 当我们像上面代码那样使用时,它相当于 componentDidUpdata...username, age }}> 但是我们需要在使用数据的组件中引入 MyContext static contextType = MyContext; 在使用时...,直接从 this.context 上取值即可 const {username,age} = this.context 适用于函数和类式组件 由于函数式组件没有自己 this ,所以我们不能通过 this.context

    70930

    React 入门学习(十七)-- React 扩展

    setState 这种用法我也是第一次见,函数式的 setState 也是接收两个参数 第一个参数是 updater ,它是一个能够返回 stateChange 对象的函数 第二个参数是一个回调函数,...库中暴露一个 lazy 函数 import React, { Component ,lazy} from 'react'; 然后我们需要更改引入组件的方式 const Home = lazy(() =...('被调用了');}) 由于函数的特性,我们可以在函数中随意的编写函数,这里我们调用了 useEffect 函数,这个函数有多个功能 当我们像上面代码那样使用时,它相当于 componentDidUpdata...username, age }}> 但是我们需要在使用数据的组件中引入 MyContext static contextType = MyContext; 在使用时...,直接从 this.context 上取值即可 const {username,age} = this.context 适用于函数和类式组件 由于函数式组件没有自己 this ,所以我们不能通过 this.context

    84530

    1、深入浅出React(一)

    构造函数的工作之一; 如果一个组件需要定义自己的构造函数,一定要在构造函数的第一行super调用父类也就是React.Component的构造函数; 如果没有在构造函数中调用super(props),那么组件实例被构造之后...React的context 使用prop给内部子组件传递数据时需要一层一层的传递,即使中间有组件不需要使用,这样比较麻烦; 使用context可以实现跨级传递。...()); 要使用的子组件中通过声明contextTypes(需要和父组件一致)就可以通过组件实例的context属性访问接收到的数据; 无状态的组件可以在函数参数中获取context;而又状态的组件可以通过...this.context和生命周期函数获取context。...this.context获取 ) } } Child.contextTypes = {

    1.6K10

    TS_React:Hook类型化

    在前几天,我们开辟了--「TypeScript实战系列」,主要讲TS在React中的应用实战。 大家如果对React了解/熟悉的话,想必都听过Hook。在当下的React开发中,函数组件大行其道。...useEffect里面的回调应该是什么都不返回,或者是一个会清理任何副作用的Destructor函数(「析构函数」,这个词借用了C++中类的说法) 7....类型化 useContext 为context提供类型是非常容易的。首先,为context的「值」创建一个类型,然后把它作为一个「泛型」提供给createContext函数。...上述实现的一个问题是,就TypeScript而言,context的值可以是未定义的。也就是在我们使用context的值的时候,可能取不到。此时,ts可能会阻拦代码的编译。...如何解决context的值可能是未定义的情况呢。我们针对context的获取可以使用一个「自定义的hook。」

    2.4K30
    领券