babel装饰器语法:
-
安装装饰器:
npm install save- @babel/plugin-proposal-decorators
-
修改配置文件 config-overrides.js
const { addDecoratorsLegacy} = require('customize-cra');
module.exports = override(
addDecoratorsLegacy()
);
写法:
//@后是一个方法,把紧随@后的内容作为参数传给@方法
@demo
class MyClass {}
function demo(target){
target.a = 1;
}
//------等价于----
class MyClass{}
function demo(target)
{
target.a = 1;
}
MyClass = demo(MyClass)
REACT中redux内使用装饰器:
在redux中 容器组件要完成UI和action的连接操作
//@connect方法传入state和action方法之后,传入Admin组件
@connect(
state => ({userInfo:state.userInfo}),
{deleteUserInfo:createDeleteUserInfoAction}
)
class Admin extends Component{}
// 不能把暴露和组件定义写在一行
export default Admin