浅谈箭头函数写法在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 相关文章推荐
ExtJS GTGrid 简单用户管理
Jul 01 Javascript
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
Jvascript学习实践案例(开发常用)
Jun 25 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
Apr 15 Javascript
JS获取计算机mac地址以及IP的实现方法
Jan 08 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
在Vue中如何使用Cookie操作实例
Jul 27 Javascript
基于react后端渲染模板引擎noox发布使用
Jan 11 Javascript
vue 实现类似淘宝星级评分的示例
Mar 01 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
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中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
Python中动态创建类实例的方法
2017/03/24 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
基于DATAFRAME中元素的读取与修改方法
2018/06/08 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
QA工程师岗位职责
2013/11/20 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书