浅谈箭头函数写法在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提取URL的搜索字符串中的参数(自定义函数实现)
Jan 22 Javascript
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
juery框架写的弹窗效果适合新手
Nov 27 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
angularJs提交文本框数据到后台的方法
Oct 08 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
checkbox在vue中的用法小结
Nov 13 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
详解Vue3中对VDOM的改进
Apr 23 Javascript
vue实现简易的双向数据绑定
Dec 29 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
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
vue实现分页栏效果
2019/06/28 Javascript
python flask 多对多表查询功能
2017/06/25 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
对python模块中多个类的用法详解
2019/01/10 Python
python3 线性回归验证方法
2019/07/09 Python
为什么python比较流行
2020/06/19 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
经管应届生求职信范文
2014/05/18 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
红楼梦读书笔记
2015/06/25 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python