浅谈箭头函数写法在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定时器实例详细分析
Oct 11 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
php+js实现倒计时功能
Jun 02 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
jQuery插件jquery-barcode实现条码打印的方法
Nov 25 Javascript
Bootstrap实现水平排列的表单
Jul 04 Javascript
微信小程序 动态传参实例详解
Apr 27 Javascript
React Native之ListView实现九宫格效果的示例
Aug 02 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
vue中post请求以a=a&b=b 的格式写遇到的问题
Apr 27 Javascript
Element Dialog对话框的使用示例
Jul 26 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
遭遇php的in_array低性能问题
2013/09/17 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Python logging设置和logger解析
2019/08/28 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
python性能测试工具locust的使用
2020/12/28 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
职业生涯规划书的格式
2013/12/29 职场文书
超市国庆节促销方案
2014/02/20 职场文书
合同意向书范本
2014/07/30 职场文书
七年级思品教学反思
2016/02/20 职场文书