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案例(下)的更多相关文章

  1. 《React+Redux前端开发实战》笔记2:基于Webpack构建的Hello World案例(上)

    这次搭建分为两部分:一部分是前期必要配置,一部分是开发React代码. [基于Webpack的React Hello World项目] 1.前期必要配置 (1)首先要确保读者的开发设备上已经安装过No ...

  2. 《React+Redux前端开发实战》笔记1:不涉及React项目构建的Hello World案例

    本小节实现一个不涉及项目构建的Hello World. [React的第一个Hello World网页] 源码地址:https://jsfiddle.net/allan91/2h1sf0ky/8/ & ...

  3. React前端有钱途吗?《React+Redux前端开发实战》学起来

    再不学React就真的跟不上大前端的形式了,目前几乎所有前端的招聘条件都是精通React者优先,看看拉勾网的React薪资,都是15K-20K,这个暑假,必须动起来了. 如果你熟悉JavaScript ...

  4. webpack+react+redux+es6开发模式---续

    一.前言 之前介绍了webpack+react+redux+es6开发模式 ,这个项目对于一个独立的功能节点来说是没有问题的.假如伴随着源源不断的需求,前段项目会涌现出更多的功能节点,需要独立部署运行 ...

  5. React Native移动开发实战-4-Android平台的适配原理

    打开Android开发工具Android Studio,选择菜单 Open an existing AndroidStudio project,打开ch04项目的android文件夹,如图5.8所示. ...

  6. webpack+react+redux+es6开发模式

    一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...

  7. React Native移动开发实战-5-Android平台的调试技巧

    Android平台的调试和其他平台的调试也很类似,例如:在Android Studio打开的工程中,打开源码MainActivity.java,然后,将鼠标移至代码编辑区的左侧后,单击鼠标即可添加断点 ...

  8. React Native移动开发实战-3-实现页面间的数据传递

    React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...

  9. React Native移动开发实战-2-如何调试React Native项目

    在实际开发中,还有一个影响开发效率的重要因素:调试. 在1.4.3节中已经介绍了Enable Live Debugger的使用.本节来介绍另一个非常重要的调试选项:Debug JSRemotely选项 ...

随机推荐

  1. AttributeError: module 'Crypto.PublicKey.RSA' has no attribute 'import_key'

    I solved this problem by pip install pycryptodome

  2. 一个简单的c++类的定义和实例化

    #include "iostream" #include <string> using namespace std; class mycoach { private: ...

  3. robotframework 找出重复元素

    思路 一.把需要进行比较的元素取出来组装成一个list 二.利用python函数,从list中找出重复函数 python函数: from collections import Counter #引入C ...

  4. C#抽象类怎么调试

    本文出自:https://www.cnblogs.com/2186009311CFF/p/11919030.html C#抽象类怎么调试 按F11调试 参考链接: 快捷键:https://www.cn ...

  5. 从收发消息能力来理解TCP建立连接时的三次握手

    TCP是一个全双工协议,意味着在Client和Server都可以接收和发送数据. 所以,从另一个角度理解建立连接的目的就是要确保双方都要知道对端的收发消息的能力是正常的

  6. redis过期策略、内存淘汰策略、持久化方式、主从复制

    原文链接:https://blog.csdn.net/a745233700/article/details/85413179 一.Redis的过期策略以及内存淘汰策略:1.过期策略:定期删除+惰性删除 ...

  7. 计算机网络(七),TCP与UDP的区别

    七.TCP与UDP的区别 1.面向连接VS无连接 TCP面向连接而UDP面向无连接的,TCP是和单对单传送数据,UDP适合多波发布 2.可靠性 TCP利用握手,确认,重传机制提供了可靠性保证,UDP可 ...

  8. ASP net 上传整个文件夹

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  9. 关于Jdk7与Jdk8对Collections进行分组的区别

    先准备一点数据: public class User {    private Integer id;    private String type;    private String name;  ...

  10. 一次高IO下的GC分析之旅

    一次高IO下的GC分析之旅 编码前线 关注 2018.12.21 00:06 字数 597 阅读 45评论 0喜欢 0 起因:收到GC STW报警 [监控系统]Total time for which ...