美文网首页
01.React概述及环境搭建

01.React概述及环境搭建

作者: Ching_Lee | 来源:发表于2018-01-29 09:23 被阅读0次

1.React简介

  • React背景:Facebook需解决的问题:构建数据不断变化的大型应用。


  • React特点:简单,声明式
    核心:组件,设计目的提高代码复用率(将数据和逻辑封装),降低测试难度(组件高内聚低耦合,容易测试)

  • React虚拟DOM


    虚拟DOM结构

    虚拟dom的结构能够将html的node节点的比较的算法复杂度从O(n^3)降低到O(n),操作dom的速度更快。


    为什么快
    diff算法
  • 官网:
    https://github.com/facebook/react/
    https://reactjs.org/

2.环境搭建

2.1 方式一:使用CDN Links搭建开发环境

这里可以看不同的版本号:https://cdnjs.com/libraries/react/16.0.0
开发环境,在html中引入如下script:16表示版本号,可以替换

<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

部署环境,在html中引入

<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
  • demo1:Hello world
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello React</title>
    <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body>
<script type="text/babel">
    //两个参数,一个是标签,一个是放置的位置。这里是在body中放入h1标签
    ReactDOM.render(<h1>Hello, world!</h1>,document.body);
</script>
</body>
</html>
2.2 方式二使用npm搭建
2.2.1 创建一个新的React应用

官网:https://reactjs.org/docs/add-react-to-a-new-app.html

  • 1) 安装node.js和npm
    进入nodejs官网下载node https://nodejs.org/en/
    下载对应版本

    我下载了node8.9.3版本,包括npm 5.5.1版本

    下载完成后安装该文件


    安装完成

【1】打开命令行,cmd或者Windows PowerShell
【2】查看node版本

node -v

【3】更改npm默认安装路径
默认是在c:\Users\Administrator\AppData里面安装,装在c盘很乱不舒服。先修改位置。

在nodejs里面创建了两个文件夹,node_globe,node_cache作为npm默认路径。


【4】更改npm安装默认的源

npm config set registry https://registry.npm.taobao.org 
npm info underscore (如果上面配置正确这个命令会有字符串response)

【5】配置系统环境变量


系统变量里面找到Path
点击编辑,添加默认安装路径,我的是F:\nodejs\node_global
  • 2)安装react脚本架
npm install -g create-react-app
安装成功
  • 3)cd到项目目录,创建自己的react app,这里我创建的应用名为react-learn
create-react-app my-app
项目目录
创建app
创建成功
  • 4)进入创建的项目目录,执行如下命令
cd react-learn
npm start
执行成功
网页输入网址,显示如下,成功
  • 5)用intellij打开



    配置run configurations

    之后可以直接点击run按钮,就可以启动项目


2.2.2 为已有的项目添加react开发环境

官网:https://reactjs.org/docs/add-react-to-an-existing-app.html
创建好的react-existing项目源码:

  • 1)参考2.2.1安装node.js和npm
  • 2)安装需要的包
    【1】进入到项目目录下,执行如下命令
npm init
我的项目目录,目前是空的

执行完成后项目中会生成package.json文件



【2】在项目目录下安装react所用的包

--save会将安装的包相关信息写入package.json中

npm install --save react react-dom
安装过程
安装完成项目目录
package.json

【3】在项目目录下安装babel相关的包支持ES6转译成ES5

npm install --save babelify babel-preset-react babel-preset-es2015
安装命令
可以看到安装完成后有一个警告,说需要babel-core包

所以在项目目录安装babel-core


安装完成
package.json文件

【4】webpack热加载配置

  • 需要webpack的原因
    用编辑器打开项目,创建index.html文件,和index.js文件



    index.js
    index.html
运行错误,不能识别index.js第四行,react的语法
  • 1)webpack安装
    首先在全局环境中安装
npm install -g webpack
npm install -g webpack-dev-server
全局安装webpack
全局安装webpack-dev-server

之后在项目目录中安装,进入到项目目录中

npm install webpack --save
npm install  webpack-dev-server --save
安装webpack 安装webpack-dev-server
package.json文件内容发生变化
  • 2)在项目中创建webpack.config.js文件


    项目目录

    webpack.config.js内容:

var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
var path = require('path');

module.exports = {
  context: path.join(__dirname),
  devtool: debug ? "inline-sourcemap" : null,
  entry: "./src/js/index.js",
  module: {
    loaders: [
      {
        test: /\.js?$/,
        exclude: /(node_modules)/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015']
        }
      }
    ]
  },
  output: {
    path: __dirname,
    filename: "./src/bundle.js"
  },
  plugins: debug ? [] : [
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
  ],
};

  • 3)进入项目目录执行webpack命令


    webpack命令

    可以看到报错说没有babel-loader包
    进入项目目录执行如下命令

npm install babel-loader --save

再执行webpack
index.html的src改为bundle.js
重新运行可以看到helloworld
  • 4)为了能够实时监测js的改变,并且实时打包。
webpack --watch

之后更改js文件就会实时webpack。

  • 【5】保存之后页面自动刷新的功能(项目重新运行只需要进入项目目录执行该命令即可)
    在项目目录下,执行如下命令
webpack-dev-server 

3.Chrome,火狐浏览器react调试插件安装

https://github.com/facebook/react-devtools

相关文章

网友评论

      本文标题:01.React概述及环境搭建

      本文链接:https://www.haomeiwen.com/subject/bfzaaxtx.html