浅谈箭头函数写法在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 相关文章推荐
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
深入理解JavaScript 函数
Jun 06 Javascript
谈谈JavaScript中的几种借用方法
Aug 09 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
vue 进阶之实现父子组件间的传值
Apr 26 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
Apr 26 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 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
我的群发邮件程序
2006/10/09 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
wxPython实现文本框基础组件
2019/11/18 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
Python通过Pillow实现图片对比
2020/04/29 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
违反课堂纪律检讨书
2014/01/19 职场文书
九年级语文教学反思
2014/02/04 职场文书
家长对老师的评语
2014/04/18 职场文书
面试通知邮件
2015/04/20 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
带你了解Java中的ForkJoin
2022/04/28 Java/Android