Hello ReactJS
时间:2022-05-04
本文章向大家介绍Hello ReactJS,主要内容包括前言、1. 环境搭建、1.2 开始搭建、1.3 基本搞定,运行一下、1.3 小结、参考、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
前言
React学习前先搭好环境,官网的例子看着比较分散。结合webpack就可以体验完整的es6开发流程了。
源码:https://github.com/Ryan-Miao/hello-react-js/releases/tag/0.1
1. 环境搭建
涉及以下几个技术。但从hello world的角度说,目前先不用知道是干嘛的,先用来学习react,后面再去研究各个组件的功能。
- Webpack - A module bundler
- Babel - A Javascript compiler
- ES6 - A relatively new Javasript standard
- Yarn - A package manager
- React - As expected
1.1 安装一些东西
去官网下载NodeJS,安装。 去官网下载yarn,然后安装。
1.2 开始搭建
最终搭建的文件结构如下:
.
|____.babelrc
|____node_modules
|____app
| |____components
| | |____App.jsx
| |____index.html
| |____index.js
|____dist
| |____index.html
| |____index_bundle.js
|____package.json
|____readme.md
|____structure.txt
|____webpack.config.js
|____yarn.lock
1.2.1 初始化
mkdir hello-react-js
cd hello-react-js
yarn init
添加webpack
yarn add webpack webpack-dev-server path
这时,项目根目录下会多出一个yarn.lock
,不用理会。
1.2.2 在根目录下创建webpack.config.js
var path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackPluginConfig = new HtmlWebpackPlugin({
template: './app/index.html',
filename: 'index.html',
inject: 'body'
});
module.exports = {
entry: './app/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index_bundle.js'
},
module: {
loaders: [
{ test: /.js$/, loader: 'babel-loader', exclude: /node_modules/ },
{ test: /.jsx?$/, loader: 'babel-loader', exclude: /node_modules/ }
]
},
plugins: [HtmlWebpackPluginConfig]
};
-
entry
: 指向入口js文件 -
output
: 指向打包后的文件目录 -
filename
: js打包后的文件名 -
path
: 打包后的文件目录 -
loaders
: 转换工具。这里简单加载es6的转换工具babel-loader
,将以.js
或者.jsx
结尾的文件转换为es5. -
plugins
: 一些插件。这里用到HtmlWebpackPlugin
,将打包后的js文件插入到指定的html模板里。好处是我们不用手动将js插入html中,这在修改js文件名的时候很有用,否则我们还要手动修改js引入的名称。
1.2.3 添加babel
刚才提到了babel-loader
,除了配置之外还需要加载依赖:
yarn add babel-loader babel-core babel-preset-es2015 babel-preset-react --dev
然后,在根目录创建.babelrc
:
{
"presets":[
"es2015", "react"
]
}
1.2.4 添加react
yarn add react react-dom
创建app/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>React App</title>
</head>
<body>
<div id="root">
</div>
</body>
</html>
创建app/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.jsx';
ReactDOM.render(<App />, document.getElementById('root'));
创建app/components/App.jsx
import React from 'react';
export default class App extends React.Component {
render() {
return (
<div style={{textAlign: 'center'}}>
<h1>Hello World! Hi ReactJS</h1>
</div>);
}
}
1.2.5 添加html-webpack-plugin
前面配置了html-webpack-plugin
,这里还需要加载依赖文件:
yarn add html-webpack-plugin
在前面的配置文件制定了html模板文件,输出文件名,以及js打包文件插入的位置。
1.3 基本搞定,运行一下
打开package.json。在script下添加
...
"scripts": {
"start": "webpack-dev-server"
},
...
运行
yarn start
这时候页面显示如下。大功告成。
可以在package.json里配置不同的webpack运行环境。这里只是搭建学习react官方文档之前先要准备好的环境。最终,package.json:
{
"name": "hello-react",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "webpack",
"start": "webpack-dev-server",
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [],
"author": "Ryan Miao",
"license": "MIT",
"devDependencies": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"clean-webpack-plugin": "^0.1.16",
"css-loader": "^0.28.4",
"html-webpack-plugin": "^2.29.0",
"less-loader": "^4.0.5",
"react": "^15.6.1",
"style-loader": "^0.18.2",
"url-loader": "^0.5.9",
"webpack": "^3.4.1",
"webpack-dev-server": "^2.6.1"
},
"dependencies": {
"path": "^0.12.7",
"react-dom": "^15.6.1"
}
}
1.3 小结
开始的时候照葫芦画瓢,先把环境搭建起来。然后开始学习,开始做事。在需要的时候去研究对应的问题。不然,知识何其多也。下面就可以照着react官网的教程,把react组件过一遍。然后再去看redux。
参考
- https://scotch.io/tutorials/setup-a-react-environment-using-webpack-and-babel#toc-webpack-installation-and-configuration
- https://yarnpkg.com/zh-Hans/docs/usage
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Yii框架自定义数据库操作组件示例
- laravel 使用事件系统统计浏览量的实现
- PHP之多条件混合筛选功能的实现方法
- PHP多进程简单实例小结
- 解决laravel5中auth用户登录其他页面获取不到登录信息的问题
- Yii框架学习笔记之应用组件操作示例
- laravel 之 Eloquent 模型修改器和序列化示例
- TP5框架请求响应参数实例分析
- laravel 模型查询按照whereIn排序的示例
- 解决在laravel中auth建立时候遇到的问题
- php array 转json及java 转换 json数据格式操作示例
- Thinkphp5 如何隐藏入口文件index.php(URL重写)
- 在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
- thinkphp5使html5实现动态跳转的例子
- php 自定义函数实现将数据 以excel 表格形式导出示例