当React遇到了es6,让gulp来搭桥
2016-04-14 23:56
543 查看
前面介绍了如何搭建es6环境来开发,本章将一下React如何用es6来编写代码。
根据前面的基础我们加入react的jsx解析,首先回顾一下前面用到的gulp模块之前我们安装了gulp,gulp-babel, babel-preset-es2015和gulp-webpack。通过webpack的module.exports和require来导出和导入模块(es6是import和export),大概就这么多。
接着我们继续安装gulp模块来解析react,废话少说,我们来操作命令
npm install --save-dev gulp-react
毋庸置疑,就用这个模块来解析jsx,接下来在gulpfile.js代码中加入以下命令
var config = require("./config.json"), gulp=require("gulp"), babel = require("gulp-babel"), es2015 = require("babel-preset-es2015"), webpack = require("gulp-webpack"), react = require("gulp-react");//新加入的模块 var PATH = config.path; gulp.task("default",function(){ gulp.src(PATH.jsx+"/*.jsx") .pipe(react())//这里就是新加入的模块, 解析jsx用 .pipe(babel({presets:[es2015]}))//es6tojs的解析器 .pipe(gulp.dest(PATH.js)) .pipe(webpack({//包装代码 output:{ filename:"all.js", }, stats:{ colors:true } })) .pipe(gulp.dest(PATH.js)); });
这样我们就可以用es6的语法写react了,依旧少废话,上代码
list.jsx es6写法
class List extends React.Component { constructor(props){ super(props); } render(){ return ( <li> List {this.props.listno} </li> ); } } module.exports = List;
list.jsx es5写法
var List =React.createClass( { render:function(){ return <li> List {this.props.listno} </li>; } });
todolist.jsx es6写法
var List = require("./list"); class TodoList extends React.Component{ constructor(props){ super(props); } render(){ return ( <div> <h1>Todo List</h1> <ul> <List listno="1" /> <List listno="2" /> <List listno="3" /> </ul> </div> ); } } ReactDOM.render( <TodoList />, document.getElementById("containerId") )
todolist.jsx es5写法
其中的require都需要webpack重新打包即可,否则会出现require is not defined的错误。
html需要加载webpack打包后的js即可(我的是all.js)
<script src="js/all.js"></script>
到此我们可以安心用es6来写react了。一周的前端工程环境在摸索中慢慢地搭建了起来。我们可以专心地为后续开发起个好头了。
React资料
React入门教程 阮一峰:http://www.ruanyifeng.com/blog/2015/03/react.html
React中文网站:http://reactjs.cn/react/docs/getting-started.html
Reac英文网站:http://facebook.github.io/react/docs/getting-started.html
相关文章推荐
- ES6 走马观花(ECMAScript2015 新特性)
- React and React with ES6
- webpack bable-loader升级无法编译jsx es6
- fetch 设置 HTTP 注意事项
- 超级给力的JavaScript的React框架入门教程
- JavaScript的React框架中的JSX语法学习入门教程
- 由ReactJS的Hello world说开来
- 深入探讨前端框架react
- 跟我学习javascript的最新标准ES6
- ES6中非常实用的新特性介绍
- 深入浅析react native es6语法
- JavaScript学习笔记之ES6数组方法
- ES6的新特性概览
- ES6中如何使用Set和WeakSet
- Windows下React Native的Android环境部署及布局示例
- 深入理解JavaScript的React框架的原理
- Webpack 实现 Node.js 代码热替换
- Webpack 实现 AngularJS 的延迟加载