浅谈箭头函数写法在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 相关文章推荐
使用Firebug对js进行断点调试的图文方法
Apr 02 Javascript
jquery ajax post提交数据乱码
Nov 05 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
深入理解Ajax的get和post请求
Jun 02 Javascript
AngularJS Bootstrap详细介绍及实例代码
Jul 28 Javascript
基于vue.js实现的分页
Mar 13 Javascript
webpack v4 从dev到prd的方法
Apr 02 Javascript
官方推荐react-navigation的具体使用详解
May 08 Javascript
解决vue热替换失效的根本原因
Sep 19 Javascript
react 组件传值的三种方法
Jun 03 Javascript
JS实现简易留言板特效
Dec 23 Javascript
JavaScript代码实现微博批量取消关注功能
Feb 05 Javascript
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
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
SQLite3中文编码 Python的实现
2017/01/11 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
智乐游戏测试笔试题
2014/05/21 面试题
取保候审保证书
2014/04/30 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
Jsonp劫持学习
2021/04/01 PHP
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
修改并编译golang源码的操作步骤
2021/07/25 Golang
mysql查看表结构的三种方法总结
2022/07/07 MySQL