美文网首页
高级指引

高级指引

作者: 李秀成 | 来源:发表于2020-07-26 14:49 被阅读0次

无障碍
        掠过~靠后

代码分割
        打包: 通常使用webpack、Rollup、Browserify等构建工具进行打包,为了避免打包的文件太大,前期就应该考虑问题并对代码包进行分割。对当前代码分割能够帮助“懒加载”当前用户所需要的内容,显著提高性能。常见的方法:
        import() React.lazy 异常边界捕获 基于路由的分割

Context(略-开后)
        Context 提供为了多个组件共享props的方式。

        API
                React.createContext
                        创建Context对象,当组件渲染了一个调用了Context对象的组件,这个组件会从组件树种离自己最近的匹配Provider种读取Context的值。
                React.Provider
                        提供组件数种订阅Context的变化。接受一个value并传递给订阅的组件;Provider 和 其内部的组件都不受制于 shouldComponentUpdata 函数,所以,内部组件在祖先组件退出更新时,也能更新。
                class.contextType
                        挂载在class的contextType 会被重新赋值为一个由React.createContext()创建的contenxt对象。
                React.Consumer
                        可以允许函数组件订阅。
                React.displayName
                        绑定React DevTools 的context的显示。

错误边界
        理念:为了解决JavaScript 得语法错误导致得应用奔溃
        如果一个class组件中定义了static getDerivedStateFromError() 或 componentDidCatch() ,就会形成一个带有错误边界得组件。
        错误边界无法捕获得场景
                - 事件处理
                - 异步代码(setTimeout 和 requestAnimatonFrame函数)
                - 服务端渲染
                - 组件自身得错误(非子组件)

Refs 转发
        通过组件传递给子组件得方法。可以理解为接收一个值,并转发组件渲染得组件内。

Fragments
       Fragments允许将多个组件同时给予render,而不是必须放到一个组件内
              例如:<React.Fragments>多个子组件</Reaft.Fragments>
              简写:<>多个子组件</>

高阶组件
       高阶组件可以简单理解为参数为组件,返回值也为组件的函数。通常是对返回值的重新包装
       

深入 JSX
       JSX 是 React.createElement(component,props,...children) 的语法糖;
              第一部分指定React元素的类型。大写字母表示组件。
              不能通过表达式来表示元素类型,如果像这么做,要在render前做定义:

const Div = Pent
return <Div>

性能优化
        React 本身已经对DOM操作进行了优化,但是在法本的时候还是需要对应用做优化和加速。
        - 使用生产版本(打包压缩)
        - 使用 Chrome Performance 分析
        - 使用 React Profiler 分析器对组件分析
        - 虚拟化长列表(超多行列表渲染)
        - 避免调停(尽量减少state 和 porps 的状态更新)
        - shouldComponentUpdate,PureComponent
        - 避免更改正在使用的state 和 props (扩展用算符,深拷贝等)

Portals
        将子节点渲染到父组件意外的DOM节点上(常见modal组件)

 ReactDOM.createPortal(child, container)

相关文章

  • 高级指引

    无障碍 掠过~靠后 代码分割 打包: 通常使用webpack、Rollup、Browserify等构建...

  • React高级指引

    React高级指引1、context一般用于嵌套组件需要共享上级组件状态的场景,避免层层传递。订阅多个contex...

  • 目录引导

    核心概念高级指引React APIHOOK

  • React高级指引(1)

    深入JSX JSX是React.createElement(component, props,...childre...

  • React高级指引(2)

    Refs & DOM Refs提供了一种方式,用于访问在render方法中创建的DOM节点或React元素创建Re...

  • React高级指引(3)

    Reconciliation(协调) 对比算法 当对比两棵树,React首先比较两个根节点 当根节点变化,Reac...

  • React高级指引学习--深入JSX

    本质上来讲,JSX 只是为 React.createElement(component, props, ...ch...

  • React高级指引学习--深入PropTypes

    注意: React.PropTypes 自 React v15.5 起已弃用。请使用 prop-types 库代替...

  • 听从高级智慧的指引

    我无限赞美我的高级智慧,永远给我指引,带领我活在爱,喜悦,和平里! 1.看到自己疼痛的大拇指 信任灵魂的选择,不踩...

  • 关于梦想

    如果你内心有一个计划,你只需要跟你的高级智慧连接,问你的高级智慧就好了。 他会从更高维度,超越时空的来指引你。 就...

网友评论

      本文标题:高级指引

      本文链接:https://www.haomeiwen.com/subject/jkwwlktx.html