React-使用装饰器

Posted superlizhao

tags:

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

  create-react-app默认不支持装饰器的,需要做以下配置。

  打开 package.json ,可以看到eject。运行 npm run eject 可以让由create-react-app创建的项目的配置项暴露出来。

{
  ...
  "scripts": {
   ...
    "eject": "react-scripts eject"
  },
  ...
}

运行 npm run eject 

  此时,项目中多了一个config文件,并且各个配置文件已经暴露出来了。(运行npm run eject之前,保证本地没有待提交到git的文件)

技术图片

安装babel插件
  Babel >= 7.x

npm install --save-dev @babel/plugin-proposal-decorators

  [email protected]

npm install --save-dev babel-plugin-transform-decorators-legacy

修改package.json文件的babel配置项
  Babel >= 7.x

  "babel": {
    "plugins": [
      ["@babel/plugin-proposal-decorators", { "legacy": true }]
    ],
    "presets": [
      "react-app"
    ]
  }

  [email protected]

"babel": {
    "plugins": [
      "transform-decorators-legacy"
    ],
    "presets": [
      "react-app"
    ]
  }

至此,就可以在项目中使用装饰器了

@MyContainer
class B extends Component{
  render(){
    return (
      <p>B组件</p>
    )
  }
}
export default B;

 

  

 



以上是关于React-使用装饰器的主要内容,如果未能解决你的问题,请参考以下文章

react——@修饰器——高阶组件的使用——通过装饰器来调用高阶组件——简单修改样式

React/Reflux:使用装饰器将带有 mixin 的类转换为 ES6

React-使用装饰器

React-使用装饰器

是否可以将装饰器与 create-react-app 一起使用?

在create-react-app 中启用装饰器语法