高阶组件装饰器

Posted xiaoshayu520ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高阶组件装饰器相关的知识,希望对你有一定的参考价值。

高阶组件装饰器

技术图片

 

 注意利用函数式组件进行化简!

import React from ‘react‘;

//1 组件原型
class Reg extends React.Component
    render()
        return <_Reg service=service />;
    


//2 匿名组件
const Reg = class extends React.Component
    render()
        return <_Reg service=service />;
    


//3 提参数
function inject(Comp)
    return class extends React.Component
        render()
            return <Comp service=service />;
        
    


//继续提参数
function inject(service,Comp)
    return class extends React.Component
        render()
            return <Comp service=service />;
        
    


//4 props
function inject(obj,Comp)
    return class extends React.Component
        render()
            return <Comp ...obj />;
        
    


//5 柯里化
function inject(obj)
    function wrapper(Comp)
        return class extends React.Component
            render()
                return <Comp ...obj />;
            
        
    
    return wrapper;


//变形 + 箭头函数化简 v1
const inject = obj => Comp => 
    class extends React.Component
        render()
            return <Comp ...obj />;
        
    


//变形 + 箭头函数化简 + 函数式组件化简 v2
const inject = obj => Comp => 
    return () => <Comp ...obj />;


//finally
const inject = ovj => Comp => props =>  <Comp ...obj/>;
const inject = ovj => Comp => props =>  <Comp ...obj ...props/>;

 

以上是关于高阶组件装饰器的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript 和 React:如何重载高阶组件/装饰器?

Typescript中的装饰器原理

react---react中使用装饰器(高阶组件的升级用法)

ES 6 装饰器与 React 高阶组件

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

python高阶3 python装饰器