ES7 装饰器模式的配置

2020-03-16  本文已影响0人  鹤仔z

装饰器模式简介

在使用 React 框架编程中,我们用高阶组件的时候,使用时往往需要用高阶组件函数包裹当前组件来导出的形式,过于麻烦。装饰器模式则优化了这一点,让我们在编程的过程中节省一点精力。

当我们使用了装饰器模式,React 中的高阶组件就可以这样来使用:

装饰器的使用

装饰器模式的配置

注意一些踩坑点

  1. 不允许在装饰器和类之间使用export关键字!!!

    比如这样(错误示范):

    import React, { Component } from 'react'
    import layoutHoc from '@layout'
    
    // 错误行为!!!装饰器和类名之间不能使用export!!!
    @layoutHoc
    export default class Home extends Component {
        render() {
            return (
                <div>Home</div>
            )
        }
    }
    

    ↑ 报错:Parsing error: Using the export keyword between a decorator and a class is not allowed. Please use export @dec class instead.

我们可以改成这样子(正确示范):

import React, { Component } from 'react'
import layoutHoc from '@layout'

// 好习惯
@layoutHoc
class Home extends Component {
    render() {
        return (
            <div>Home</div>
        )
    }
}

export default Home;
  1. 装饰器不能用来装饰函数组件!!!

    错误示范:

    import React, { Component } from 'react'
    import layoutHoc from '@layout'
    
    // 装饰符必须加到类的声明前!!!
    @layoutHoc
    function home(){
        return (
            <div>Home</div>
        )
    }
    export default home;
    

    ↑ 报错:Parsing error: Leading decorators must be attached to a class declaration

    所以这时候要用类组件来编写啦

上一篇 下一篇

猜你喜欢

热点阅读