装饰器 decorator 是一种函数,是 Es6 的一个语法糖,是一种与类(class)相关的语法,用来注释或修改类和方法
以@+函数名
形式展现,可以放在类和类方法的定义前面
在设计模式中讲到优先使用对象而不是类继承,动态的给对象添加一些额外的属性或方法,相比与使用继承,装饰器模式更加灵活
在 React 中,高阶组件是一个非常厉害的东西,它最大的特点就是能够:重用组件逻辑.达到精简代码能力
使用create-react-app创建项目后,
它默认是不支持装饰器模式的,需要对项目做一些配置
在项目根目录中终端下使用npm run eject
,这条命令主要是将我们的配置项做一个反向输出,暴露出隐藏的 webpack 配置项,这样可以项目进行修改了的,注意它是不可逆的
使用装饰器,需要使用babel
来进行转换,用到的插件是@babel/plugin-proposal-decorators
当用eject
将webpack
一些配置弹射出来以后,会看到根目录下的package.json
文件下新增了很多文件
在babel
对象处进行插件的配置,将@babel/plugin-proposal-decorators
添加到plugins
后
{"babel": {"presets": ["react-app"],"plugins": [["@babel/plugin-proposal-decorators",{ "legacy": true }]]}
}
注意:
1, babel --> 7.x 与 6.x是不一样的;可以参考 .html
2,create-react-app
脚手架中已经安装了 @babel/plugin-proposal-decorators
插件
3. 如果使用的是 vscode, 可以在项目根目录下添加 jsconfig.json 文件来消除代码警告
{"compilerOptions": {"experimentalDecorators": true}
}
本文发布于:2024-01-30 22:06:53,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170662361623160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |