React入门一搭建React运行环境

目前,由Facebook开发的前端框架React很流行。据说其性能较其他的前端工具有很大的提升。随着越来越多的人的关注,React被认为可能是将来Web开发的主流工具。

对于我自己来说,本身我是做后端的。但是现在Javascript是如此的强大,掌握一个前端框架我觉的是作为一名程序员必不可少的技能。既然React如此火爆,选择React也是顺理成章的了。

我开始学习React的时候只是搭建环境就用了很长的时间。主要因为这是一门新的技术,操作的教程还是比较匮乏。但是对于入门的文章我个人还是比较推崇阮一峰老师的这一篇React 入门实例教程。

下面我们主要来介绍如何搭建React运行环境(总是感觉题目叫做搭建React运行环境总是不那么准确,因为React可以说是一个前端框架,也可以说是一个类库。运行环境自然需要浏览器的支持。与其叫搭建运行环境倒不如叫做如何引用React)。

这里有两种方式,一种是使用npm,另一种是不使用npm。下面我们先来看不使用npm的方式。

react">不用npm的方式引入React

对于这种方式,我们需要首先下载React和React-dom的库文件。然后引入到html文件中。

<!DOCTYPE html>

<html>

<head>

<metacharset="UTF-8" />

<title>Hello React!</title>

<scriptsrc="build/react.js"></script>

<scriptsrc="build/react-dom.js"></script>

<scriptsrc="build/browser.min.js"></script>

</head>

<body>

<divid="content"></div>

<scripttype="text/babel">

ReactDOM.render(

<h1>Hello, world!</h1>,

document.getElementById(‘content’)

);

</script>

</body>

</html>

上面的例子中,在Javascript中的XML语法被称为JSX,对于这种语法,在<script>标签中其type必须为“text/babel”。但是这种语法是无法直接被浏览器解析的,因此需要上面的第三个文件browser.min.js将这种Js转换成原生的Js代码,然后再由react.js和react-dom.js解析自己的语法来执行。当然这里面涉及到一个知识点,那就是babel。至于对babel的详细了解本篇文章不做介绍,我们可以认为其就是一个转换器,当然这个转换是通过browser.min.js来进行的。

下面我们可以将上面html中的JSX代码分离出来,单独写到一个文件src/hw.js中

ReactDOM.render(

<h1>Hello, world!</h1>,

document.getElementById(‘content’)

);

因此上述html可以更新为如下代码:

<!DOCTYPE html>

<html>

<head>

<metacharset="UTF-8" />

<title>Hello React!</title>

<scriptsrc="build/react.js"></script>

<scriptsrc="build/react-dom.js"></script>

<scriptsrc="build/browser.min.js"></script>

</head>

<body>

<divid="content"></div>

<scripttype="text/babel"src=”src/hw.js”></script>

</body>

</html>

这里需要注意,这种情况有的浏览器(例如谷哥浏览器)是无法加载src/hw.js的,只能通过http地址的方式才可以加载。这是官网上说的,我没有验证过,不过我们最好是通过url绝对地址的方式来引入上面的文件。

对于这样的方式,其实最消耗时间的是通过babel将JSX转换成Javascript语法的过程。因此我们通常是将这一步放在服务器上面执行的。也就是说我们一般情况下是不直接在客户端使用buile/browser.min.js来转换JSX的。所以在浏览器解析之前就已经由服务器直接转换完成,客户端直接去调用转换完成的文件即可。

服务器端转换

首先我们应该在服务器端先安装babel

$ npm install –global babel-cli

$ npm install babel-preset-react

然后开始转换我们先前新建的src/hw.js文件

$ babel –presets react src –watch –out-dir build

通过以上的命令build/hw.js文件就生成了,这个文件里都是普通的javascript语法代码。

这里需要说明的是,src是存放资源文件的文件夹,也就是我们写的那些源代码,build是存放客户端引入的文件,也就是生成的文件。而—watch是监听src文件夹里的资源的文件是否有变化,如果有变化则自动生成相应的文件。

现在我们的html代码又可以更新为一下内容了。

<!DOCTYPE html>

<html>

<head>

<metacharset="UTF-8" />

<title>Hello React!</title>

<scriptsrc="build/react.js"></script>

<scriptsrc="build/react-dom.js"></script>

<!—这里不需要 browser.min.js 文件了 -->

</head>

<body>

<divid="content"></div>

<!-- 这里type 也将改成 text/javascript 或者省略不写type -->

<scripttype="text/javascript"src=”build/hw.js”></script>

</body>

</html>

上面就是我们不使用npm的方式,看起来还是比较麻烦的。为了使用方便我们可以使用npm的方式来使用React。

使用npm引用React

使用这种方式,可以有两种方法管理,一种是browserify,另一种是webpack。由于我个人在刚开始学的时候直接使用的是webpack,对于browserify我没有用过,为了不误导大家,我在这里就略过browserify,直接使用webpack。

首先我们应该做的是新建一个项目 /react

$ mkdir /react

$ cd /react

$ npm init # 初始化项目,这一步会有一些选项让你输入。输入完成以后会在项目目录下产生一个package.json文件

然后安装react库和react-dom 库和一些工具。

$ npm install –save react react-dom

$ npm install –save-dev babel-preset-react

接着是安装webpack。

$ npm install –save-dev webpack

安装完成以后会在项目目录下面生成一个node_modules 目录,所有安装的模块都在这个目录下面,其中包括webpack。而webpack的命令同样也在这个目录下面。使用起来非常不方便。我个人习惯是在项目目录下单独新建一个bin目录,里面存放所有常用命令的快捷方式。就拿我们的webpack来说。

$ ln –s /react/node_modules/webpack/bin/webpack.js /react/bin/webpack

这样只要我们处于项目目录下面,我们就可以使用 bin/webpack这个命令了。在开始使用webpack打包项目之前,我们需要做最重要的一步,那就是编写webpack的配置文件webpack.config.js,内容如下

module.exports={

entry: {

module:'./src/index.js',

},

output:{

path: './build',

filename: 'bundle.js',

},

module:{

loaders:[

{

test: /\.js$/,

loader: 'babel',

query:{

presets:['react']

}

}

],

}

}

对于webpack的配置文件的语法可以参考官网的教程。

接下来我们开始写我们的代码 src/index.js

varReact = require('react');

varReactDOM = require('react-dom');

ReactDOM.render(

<h1>Hello, world!</h1>,

document.getElementById(‘content’)

);

最后开始打包

$ bin/webpack

执行完成以后我们就可以在项目目录下面看到有build文件夹,里面有js文件bundle.js。

我们亦可以使用—watch来监听src中的资源文件是否有变化,如果有变化将自动打包。

$ bin/webpack –watch

然后呢,我们的html可以改成如下的代码:

<!DOCTYPE html>

<html>

<head>

<metacharset="UTF-8" />

<title>Hello React!</title>

</head>

<body>

<divid="content"></div>

<!-- 这里type 也将改成 text/javascript 或者省略不写type -->

<scripttype="text/javascript"src=”build/bundle.js”></script>

</body>

</html>

是不是管理起来更简单了,react和react-dom都不需要在html中引入了。

以上即是搭建React运行环境的两种方式。由于我也是刚开始接触React不久,所以有些不准确或不详细的地方还请大家指正。

本文转载自:迹忆客(https://www.jiyik.com)

以上是 React入门一搭建React运行环境 的全部内容, 来源链接: utcz.com/z/290038.html

回到顶部