浅谈箭头函数写法在ReactJs中的使用


Posted in Javascript onAugust 22, 2017

ES7中的箭头函数写法真的是很方便,而现今ReactJs又非常流行而且好用,非常适合有Java面向对象经验的同学学习和使用,在使用Reacjs构建组件时,如果想要使用箭头函数写法定义函数该怎么办呢?

首先,如果你直接在React组件中使用箭头函数写法定义函数,编译是不会通过的,会报出语法错误。

ERROR in ./modules/Repos.js
Module build failed: SyntaxError: E:/AllWorkSpace/react-router/trunk/lessons/01-
setting-up/modules/Repos.js: Unexpected token (4:16)

 2 | import {Link} from 'react-router';
 3 | export default class Repos extends Component{
> 4 |   handleSubmit = () => {
  |         ^
 5 |
 6 |   }
 7 |   render(){

 @ ./index.js 19:13-39

如上所述,handleSubmit函数定义失败,那要怎样才能让你的reactjs项目支持箭头函数写法呢,答案是 babel-preset-es2015,babel-preset-React,babel-preset-stage-0,babel-plugin-transform-class-properties. 只有添加这四个组件,这样才能支持箭头函数写法。

那么我们该怎么做呢,首先当然是安装和下载babel-preset-es2015,babel-preset-react,babel-preset-stage-0,babel-plugin-transform-class-properties 这四个组件了。

npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-react
npm install --save-dev babel-preset-stage-0
npm install --save-dev babel-plugin-transform-class-properties

然后,在根目录下添加.babelrc 文件,文件内容是

{
  presets: [ "react","es2015","stage-0"],
  "plugins": ["transform-class-properties"]
}

在然后,在webpack.config.js中添加配置。

module: {
   loaders: [
    { 
     test: /\.js$/, 
     exclude: /node_modules/, 
     loader: 'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0' 
    }
   ]
  }

其中,这句 loader: 'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0' 需要留意,而且顺序必须这样,不能错,要不然会报错。

ERROR in ./modules/Repos.js
Module build failed: SyntaxError: E:/AllWorkSpace/react-router/trunk/lessons/01-
setting-up/modules/Repos.js: Missing class properties transform.

 2 | import {Link} from 'react-router';
 3 | export default class Repos extends Component{
> 4 |   handleSubmit = () => {
  |   ^
 5 |
 6 |   }
 7 |   render(){

 @ ./index.js 19:13-39

好了,这样就可以为所欲为,随心所欲的使用自己喜爱的箭头函数写法了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
PHP+jQuery+Ajax实现多图片上传效果
Mar 14 Javascript
使用AngularJS实现可伸缩的页面切换的方法
Jun 19 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
Nov 06 Javascript
Vue异步组件使用详解
Apr 08 Javascript
Vue 过滤器filters及基本用法
Dec 26 Javascript
使用classList来实现两个按钮样式的切换方法
Jan 24 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
vue源码nextTick使用及原理解析
Aug 13 Javascript
layer.alert自定义关闭回调事件的方法
Sep 27 Javascript
JS实现斐波那契数列的五种方式(小结)
Sep 09 Javascript
vue的项目如何打包上线
Apr 13 Vue.js
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
Aug 22 #Javascript
bootstrap3-dialog-master模态框使用详解
Aug 22 #Javascript
关于JS与jQuery中的文档加载问题
Aug 22 #jQuery
bootstrap confirmation按钮提示组件使用详解
Aug 22 #Javascript
bootstrap multiselect下拉列表功能
Aug 22 #Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 #Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 #Javascript
You might like
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
一个目录遍历函数
2006/10/09 PHP
支持oicq头像的留言簿(二)
2006/10/09 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
python多线程操作实例
2014/11/21 Python
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python实现PID算法及测试的例子
2019/08/08 Python
什么是python的列表推导式
2020/05/26 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
毕业生的自我评价范文
2013/12/31 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
完整版商业计划书
2014/09/15 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
Golang二维数组的使用方式
2021/05/28 Golang