这是模块化开发、主流框架和最新版的ECMAScript语法规范的一个小demo

准备工作
安装 nodeJs
首先进入node官网,去下载最新版的nodeJs
webpack
安装webpack
npm install webpack -g
参数-g表示全局安装webpack,你在cmd命令中哪个文件夹下都可以使用webpack的命令,如果不加-g的话,是只可以在你安装webpack的目录下使用webpack这个命令
webpack 也有一个 web 服务器
npm install webpack-dev-server -g
-g道理同上
配置webpack
1、先确认一下项目的目录结构
|-app |--component |---component.js |--app.js |-build |--css |--img |--js |--index.html |-webpack.config.js
2、配置webpack.config.js
在使用webpack的时候,需要创建一个名为 webpack.config.js 的配置文件,这个文件在安装webpack的时候,是不会自动创建的,是需要手动创建,文件的位置要放在当前安装webpack根目录下
var path = require('path');
module.exports = {
entry: path.resolve(__dirname, './app/app.js'),
output: {
path: path.resolve(__dirname, './build'),
filename: 'js/build.js'
},
module: {
loaders: [{
test: /\.js|.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react']
}
}]
}
}
这是一个简单的webpack的配置,首先先引用了path对象。
entry是一个入口文件,在这个文件中的所有内容,会被打包到output指定目录的指定文件当中。
path.resolve是一个来格式化路径的方法,path.resolve的方法参数有两个path.resolve(from,to),from这里的__dirname是为了获取当前模块文件所在的目录,to这里的./app/app.js是一个相对路径,ouput是出口,ouput中的path和entry的方法同理,这里不做赘述。
filename是指向一个指定文件,入口打包的所有文件,最后代码都会在这个出口文件中看到。
module中添加的loaders这个数组,里面的对象是用来转换模块的,现在这里只添加了一个js的模块,用来转换es6语法和react
这个时候,还需要安装一个 babel-loader
npm install babel-core babel-loader babel-preset-es2015 babel-preset-react --save-dev
3、修改html文件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>React + Webpack + es6</title> </head> <body> <div id="aaa"></div> <script src="js/build.js"></script> </body> </html>
修改完 index.html 后,开始编写js:
在 app.js 中,添加 alert('hello world')
然后在cmd命令行中,运行 webpack ,打包完成后打开 index.html ,会弹出一个系统弹窗,"hello world"。
这个时候证实了,我们的配置是正确的,可以正常运行。
react
安装react
首先,还是和上面一样,需要安装对应的插件
npm install react react-dom --save-dev
安装完成后,打开component.js,修改为:
import React from 'react';
export class Component extends React.Component {
render() {
return ( < div > hello world < /div>)
}
}
打开 app.js ,修改为:
import React from 'react';
import {Component} from './component/component.js';
import {render} from 'react-dom';
render(<Component />,document.querySelector('#aaa'));
import是es6中的一个新方法,是用来加载模块的,上面的 import 是用来加载React的, export 定义了对外接口,这里要注意,加载模块定义的名称和类的名称首字母必须大写,如果不大写,会报错。
运行 webpack ,这个时候就完成了一个简单的 webpack + react + es6 的模块化开发,可以直接双击打开 index.html 查看演示,也可以运行 webpack-dev-server 打开本地服务器,浏览器打开 http://localhost:8080/build/index.html 查看演示
React组件生命周期
1、getDefaultProps
作用于组件类,只调用一次,返回对象用于设置默认的props,对于引用值,会在实例中共享。
2、getInitialState
作用于组件的实例,在实例创建时调用一次,用于初始化每个实例的state,此时可以访问this.props。(es6不支持)
3、componentWillMount
在完成首次渲染之前调用,此时仍可以修改组件的state。
4、render
必选的方法,创建虚拟DOM,该方法具有特殊的规则:
1)只能通过this.props和this.state访问数据
2)可以返回null、false或任何React组件
3)只能出现一个顶级组件(不能返回数组)
4)不能改变组件的状态 5、不能修改DOM的输出
5、componentDidMount
真实的DOM被渲染出来后调用,在该方法中可通过this.getDOMNode()访问到真实的DOM元素。此时已可以使用其他类库来操作这个DOM。
在服务端中,该方法不会被调用。
6、componentWillReceiveProps
组件接收到新的props时调用,并将其作为参数nextProps使用,此时可以更改组件props及state。
7、shouldComponentUpdate
组件是否应当渲染新的props或state,返回false表示跳过后续的生命周期方法,通常不需要使用以避免出现bug。在出现应用的瓶颈时,可通过该方法进行适当的优化。
在首次渲染期间或者调用了forceUpdate方法后,该方法不会被调用
8、componentWillUpdate
接收到新的props或者state后,进行渲染之前调用,此时不允许更新props或state。
9、componentDidUpdate
完成渲染新的props或者state后调用,此时可以访问到新的DOM元素。
10、componentWillUnmount
组件被移除之前被调用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任务都需要在该方法中撤销,比如创建的定时器或添加的事件监听器。
React调试( React Developer Tools )
如果直接在浏览器调试的话,我们只能在Element中看到渲染后的DOM分层结构,如果想看到React组件的分层结构,就会需要到一个调试工具,因为本人比较喜欢使用chrome浏览器进行调试,所以这里暂时只拿chrome浏览器来举例。
1、扩展程序商店下载(推荐)
首先,要保证你的浏览器是可以访问谷歌扩展程序商店,接着我们在商店中搜索 React Developer Tools,然后就会出现一个扩展程序,扩展程序商店下载的,直接启用就好。
2、网上安装包下载
如果是网上下载的安装包,就找一下包里面会有一个.crx文件扩展名的文件,拖放到扩展程序中即可。
个人说明
上述所有内容都是本人的个人理解,如果出现不正确的地方,请及时评论方便做出修改
以上这篇浅谈react+es6+webpack的基础配置就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# react
# webpack
# 配置
# 一看就懂的ReactJs基础入门教程-精华版
# 回顾Javascript React基础
# React Native基础入门之初步使用Flexbox布局
# React Native基础入门之调试React Native应用的一小步
# react以create-react-app为基础创建项目
# React Router基础使用
# JavaScript的React Web库的理念剖析及基础上手指南
# react基础知识总结
# 是一个
# 这个时候
# 就会
# 到新
# 在这个
# 首次
# 给大家
# 加载
# 可以使用
# 可通过
# 所有内容
# 是用来
# 作用于
# 安装包
# 都是
# 这是
# 也有
# 会有
# 放在
# 不需要
相关文章:
高防服务器如何保障网站安全无虞?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何正确下载安装西数主机建站助手?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
javascript中对象的定义、使用以及对象和原型链操作小结
如何彻底删除建站之星生成的Banner?
如何快速搭建支持数据库操作的智能建站平台?
网站制作价目表怎么做,珍爱网婚介费用多少?
广平建站公司哪家专业可靠?如何选择?
如何确保西部建站助手FTP传输的安全性?
seo网站制作优化,网站SEO优化步骤有哪些?
如何在自有机房高效搭建专业网站?
php json中文编码为null的解决办法
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
安云自助建站系统如何快速提升SEO排名?
如何续费美橙建站之星域名及服务?
常州自助建站费用包含哪些项目?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
网站代码制作软件有哪些,如何生成自己网站的代码?
潮流网站制作头像软件下载,适合母子的网名有哪些?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
SQL查询语句优化的实用方法总结
淘宝制作网站有哪些,淘宝网官网主页?
网站制作的步骤包括,正确网址格式怎么写?
网站制作企业,网站的banner和导航栏是指什么?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
教程网站设计制作软件,怎么创建自己的一个网站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何快速生成ASP一键建站模板并优化安全性?
建站之星价格显示格式升级,你的预算足够吗?
安徽网站建设与外贸建站服务专业定制方案
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何实现建站之星域名转发设置?
如何通过cPanel快速搭建网站?
代购小票制作网站有哪些,购物小票的简要说明?
免费网站制作appp,免费制作app哪个平台好?
如何通过网站建站时间优化SEO与用户体验?
开心动漫网站制作软件下载,十分开心动画为何停播?
如何选择香港主机高效搭建外贸独立站?
文字头像制作网站推荐软件,醒图能自动配文字吗?
建站之星展会模版如何一键下载生成?
湖北网站制作公司有哪些,湖北清能集团官网?
高端网站建设与定制开发一站式解决方案 中企动力
教学论文网站制作软件有哪些,写论文用什么软件
?
建站之星后台密码如何安全设置与找回?
h5网站制作工具有哪些,h5页面制作工具有哪些?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
*请认真填写需求信息,我们会在24小时内与您取得联系。