《React+Redux前端开发实战》笔记3:基于Webpack构建的Hello World案例(下)
2.使用React编码
下面正式开始使用React来编写前端代码。
(1)npm安装react和react-dom:
npm install react react-dom -S
(2)用下面代码替换./src/index.jsx中的console:
import React from 'react'; import { render } from 'react-dom'; class App extends React.Component { render () { return <p> Hello React</p>; } } render(<App/>, document.getElementById(‘app'));
(3)在根目录下执行:
./node_modules/.bin/webpack -d
现在浏览器打开index.html将会在页面展示Hello World。当然真实开发中不能每一次修改前端代码就执行一次Webpack编译打包,可以执行如下命令来监听文件变化:
./node_modules/.bin/webpack -d —-watch
终端将会显示:
myfirstapp Jack$ ./node_modules/.bin/webpack -d --watch webpack is watching the files… Hash: 6dbf97954b511aa86515 Version: webpack 4.22. Time: 839ms Built at: -- :: Asset Size Chunks Chunk Names bundle.js 1.87 MiB main [emitted] main Entrypoint main = bundle.js [./src/index.jsx] 2.22 KiB {main} [built] + hidden modules
这就是Webpack的监听模式,一旦项目中的文件有改动,就会自动执行Webpack编译命令。不过浏览器上展示的HTML文件不会主动刷新,需要读者手动刷新浏览器。如果想实现浏览器自动刷新,可以使用react-hot-
loader(https://github.com/gaearon/react-hot-loader)。
(4)真实项目开发中,一般使用npm执行./node_modules/.bin/webpack -d —watch这个命令来开发。这需要在package.json中配置:
{ // ... "scripts": { "dev": "webpack -d --watch", "build": "webpack -p", "test": "echo \"Error: no test specified\" && exit 1" }, // ... }
(5)现在只需要在根目录下执行如下命令就能开发与构建:
npm run dev npm run build
以上为真实项目中一个较为完整的项目结构,读者可以在此基础上根据项目的需要自行拓展其他功能。本例源码地址为https://github.com/khno/react-hello-world,分支为master。项目完整的结构如下:
.
├── build
│ └── bundle.js
├── index.html
├── package-lock.json
├── package.json
├── src
│ └── index.jsx
├── .gitignore
├── .babelrc
└── webpack.config.js
《海贼王》中罗杰说,每个人都有自己出场的机会!在将来,React可能会在前端历史的浪潮中被人遗忘,但今天,React的设计思想影响了无数的开发者,当下正是属于它的时代!!
《React+Redux前端开发实战》笔记3:基于Webpack构建的Hello World案例(下)的更多相关文章
- 《React+Redux前端开发实战》笔记2:基于Webpack构建的Hello World案例(上)
这次搭建分为两部分:一部分是前期必要配置,一部分是开发React代码. [基于Webpack的React Hello World项目] 1.前期必要配置 (1)首先要确保读者的开发设备上已经安装过No ...
- 《React+Redux前端开发实战》笔记1:不涉及React项目构建的Hello World案例
本小节实现一个不涉及项目构建的Hello World. [React的第一个Hello World网页] 源码地址:https://jsfiddle.net/allan91/2h1sf0ky/8/ & ...
- React前端有钱途吗?《React+Redux前端开发实战》学起来
再不学React就真的跟不上大前端的形式了,目前几乎所有前端的招聘条件都是精通React者优先,看看拉勾网的React薪资,都是15K-20K,这个暑假,必须动起来了. 如果你熟悉JavaScript ...
- webpack+react+redux+es6开发模式---续
一.前言 之前介绍了webpack+react+redux+es6开发模式 ,这个项目对于一个独立的功能节点来说是没有问题的.假如伴随着源源不断的需求,前段项目会涌现出更多的功能节点,需要独立部署运行 ...
- React Native移动开发实战-4-Android平台的适配原理
打开Android开发工具Android Studio,选择菜单 Open an existing AndroidStudio project,打开ch04项目的android文件夹,如图5.8所示. ...
- webpack+react+redux+es6开发模式
一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...
- React Native移动开发实战-5-Android平台的调试技巧
Android平台的调试和其他平台的调试也很类似,例如:在Android Studio打开的工程中,打开源码MainActivity.java,然后,将鼠标移至代码编辑区的左侧后,单击鼠标即可添加断点 ...
- React Native移动开发实战-3-实现页面间的数据传递
React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...
- React Native移动开发实战-2-如何调试React Native项目
在实际开发中,还有一个影响开发效率的重要因素:调试. 在1.4.3节中已经介绍了Enable Live Debugger的使用.本节来介绍另一个非常重要的调试选项:Debug JSRemotely选项 ...
随机推荐
- .NET界面控件DevExpress全新发布v19.1.5|改进Office 2019主题
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- JAVA》eclipse——(一)jdk的下载、安装与配置
http://www.cnblogs.com/best/p/6275334.html 注:这是一位老师的博客随笔链接,不是我的,里面有详细的说明,分享给大家,如果想看其他关于IT的知识,可以访问 ht ...
- Apache工作流程
一个经典的Apache处理php页面的流程 需要连接mysql数据库并处理的流程 网站是一系列网页的组合 从用户角度看就是访问诸如 hhtp://www.baidu.com -----url 这是互联 ...
- 【leetcode】Maximum Product of Word Lengths
Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the tw ...
- JS实现 Tab栏切换案例
要求:当鼠标点击上面相应的选项卡(tab),下面页面的内容也随之而改变. 结构分析: 全部的内容都放到一个大的盒子里面,盒子里面又可以分为上面和下面两个盒子. 上面的盒子放了 5个li,装着5个小的选 ...
- nginx实现商品详情页的缓存
- IE8 CSS样式兼容性清单
IE8对于CSS2.1是完整支持的,对于CSS3则只是部分支持.下文中只列出IE8完全支持及完全不支持的样式,对于. 注:下文中的E.F均指html标签名,如p,img等. At-rules At类规 ...
- Markdown 标记语言指北 - 源码
这是上一篇博客的源代码. 这是班刊约稿的一篇文章. 全文约6000字, 预计需要 60 分钟读完. # Markdown 标记语言指北 #### TOC 1. [什么是 Markdown?](#%E4 ...
- 游戏2048的python实现
前些日子被问了一下2048是如何实现,说实话当时没有想的特别清晰,所以回答的也比较混乱,后来仔细想想这个问题还是挺有趣的,简单的实现了一下 这个问题里面主要有两个问题,一个是移动时的计算,二是移动前对 ...
- HDU 2859—Phalanx(DP)
Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description Today i ...