网站首页 > 技术文章 正文
前言
我们要自己手动实现react,那么得搭建一个环境,有人说了,为什么我们还要搭建环境呢,就不能写在一个index.js文件,然后index.html里面引入么。答案是残酷的,是不行的。
为什么不行呢?为什么需要引入编译工具呢?
首先来说jsx语法,这个大家都应该熟悉,每个类或者函数最后都return的jsx语法,然后需要把jsx转化为React.createElement(虚拟dom)的形式
而支持转化jsx语法的目前只有@babel/preset-react,这个东西第一你可以在node环境里直接import使用,而如果是浏览器环境,那么你的通过webpack或者vite才行,这里我们使用的webpack,通过编译的方式
如果有人问我为什么使用webpack而不是vite的话,那我的回答是,我更熟悉webpack,哈哈
准备环境
1. 准备npm包
@babel/core // babel核心包
@babel/preset-react //支持jsx语法
@babel/preset-env // 支持最新的js语法
babel-loader // 把es6转化为es5
webpack // 这个大家都认识
webpack-cli // 可以在命令行运行webpack
webpack-dev-server // webpack服务器
html-webpack-plugin //生成html并自动引入打包文件的插件
clean-webpack-plugin //每次打包清除旧的dist里面的文件
这里有个疑问哈,babel-loader和@babel/preset-env等有什么关联呢?
- babel-loader其实就是允许在webpack里面使用babel去转换代码
- @babel/preset-env和@babel/preset-react其实就是都要转化哪些代码 @babel/preset-react从名字就可以看出来是转化react代码的,也就是jsx代码 @babel/preset-env其实就是转化最新的js语法的,把他们转化为目标浏览器可以识别的代码
然后开始安装
pnpm i @babel/core @babel/preset-react @babel/preset-env babel-loader webpack webpack-cli webpack-dev-server html-webpack-plugin clean-webpack-plugin
2. 创建webpack.config.js
配置webpack.config.js,这个配置工作其实不难,很多都是语义化的东西
const HtmlWebpackPlugin = require("html-webpack-plugin");
const path = require("path");
module.exports = {
mode: "development",
// 入口
entry: path.join(__dirname, "/src/index.js"),
// 出口
output: {
path: path.join(__dirname, "dist"),
filename: "bundle.[hash:8].js",
},
module: {
rules: [
{
// 对以js结尾的文件进行es6转es5
test: /\.js$/,
use: {
loader: "babel-loader",
options: {
presets:["@babel/preset-env", "@babel/preset-react"]
}
},
exclude: /node_modules/,
},
],
},
plugins: [
// html生成插件
new HtmlWebpackPlugin({
// 生成html参考的模板
template: "./src/index.html",
}),
],
// 服务器
devServer: {
static: path.join(__dirname, "/dist"),
open: true,
},
};
3.创建html模版
src/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
4. 设置启动命令
使用webpack-dev-server可以使我们支持热更新,还可以配置服务
"scripts": {
"start": "webpack-dev-server --config webpack.config.js"
}
5。创建index.js
src/index.js
react源码内容
总结
以上就是我们搭建react源码环境, 整体看上去没啥难度,接下来就是开始实现react源码了,这才是重头戏
文章转自:https://juejin.cn/post/7372031054818607123
- 上一篇: 搭建一个干净整洁的vue前端开发环境
- 下一篇: 若依学习--环境搭建(前端) 前端多环境配置
猜你喜欢
- 2025-06-30 大疆上云API+流媒体服务器部署实现直播功能
- 2025-06-30 从0到1:项目从需求收集到落地全流程详情
- 2025-06-30 在 WSL 配置 Node.js 开发环境(windows配置nodejs)
- 2025-06-30 3小时搭建企业智能文档库!会博通部署超简攻略,管理者必看
- 2025-06-30 我把大模型锁进本地!本地AI编程开发环境搭建记录及避坑指南
- 2025-06-30 CodeSpirit 开发环境搭建指南(codecomposer studio)
- 2024-10-07 【前端进阶】Vite + Vue3:多页面应用的优雅构建与环境变量管理
- 2024-10-07 springboot+Neo4j:快速搭建自己的知识图谱可视化构建平台
- 2024-10-07 前端工程化体系设计与实践第5章第1节部署流程的设计原则
- 2024-10-07 自主搭建5个精品脚手架,玩转前端提效|无密分享
你 发表评论:
欢迎- 581℃几个Oracle空值处理函数 oracle处理null值的函数
- 576℃Oracle分析函数之Lag和Lead()使用
- 561℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 561℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 556℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 546℃【数据统计分析】详解Oracle分组函数之CUBE
- 535℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 530℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)