IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> react脚手架、使用步骤、在react脚手架里做项目的步骤、反向代理 -> 正文阅读

[JavaScript知识库]react脚手架、使用步骤、在react脚手架里做项目的步骤、反向代理

脚手架

facebook的官方脚手架

1、安装 create-react-app (CRA)

npm install create-react-app -g
yarn global add create-react-app

安装yarn
方法一:使用安装包安装

[官方下载安装包](https://yarnpkg.com/zh-Hans/docs/install)
安装完毕后,一定要配置环境变量。

方法二:使用npm安装

npm i yarn -g

-i:install 

-g:全局安装(global),使用 -g 或 --global

输入yarn -version 可以看到版本号,说明安装成功了。我们就可以在项目中像使用npm一样使用yarn了。

2、用脚手架创建 react项目

create-react-app 项目名称
如:create-react-app reactapp01
注意:项目名称不能有大写字母。

3、 启动项目:

npm start | yarn start

4、目录解析:
4.1)第一级目录
在这里插入图片描述

node_modules:是项目依赖的模块

src:是程序员写代码的地方,src是source的缩写,表示源代码

public: 静态资源。

4.2)展开目录:

  • Public:
index.html:是html网页,是个容器。这个文件千万不敢删除,也不能改名。

只有Public目录下的文件才会被index.html文件引用,这是静态资源,index.html不会引用
src目录下的文件

manifest.json:生成一个网页的桌面快捷方式时,会以这个文件中的内容作为图标和文字
的显示内容
  • src:
 src目录是源代码,webpack只会打包这个目录下的文件,所以,把需要打包的文件
 都放在这个目录下。

   Index.js:是主js文件,千万不能删除,也不能改名

   Index.css:是index.js引入的css文件(也是模块,webpack会把css也打包成模块)  千万不敢删除,也不能改名

   App.js:是一个组件示例(模块),在 index.js里会引入这个组件。我们自己需要写组件时,只需要复制App.js文件即可。

  App.css:是App.js文件引入的css文件(也是模块,webpack会打包)。

  Logo.svg:是图片

?    registerServiceWorker.js:支持离线访问,所以用起来和原生app的体验很接近,只有打包生成线上版本的react项目时,registerServiceWorker.js才会有效。服务器必须采用https协议

5、打包

npm run build | yarn build

6)、如果要解构出配置文件:

npm run eject | yarn eject 解构出所有的配置文件 可选

7、如果需要调试,安装react-dev-tools工具

  1. 先进入到https://github.com/facebook/react网址

  2. 通过git clone https://github.com/facebook/react-devtools.git下载到本地(或者直接点击下载)

  3. 下载之后进入到react-devtools目录下,用npm安装依赖
    npm --registry https://registry.npm.taobao.org install

  4. 然后在npm run build:extension:chrome

环境配置

1、把配置解构
npm run eject | yarn eject
  
2、修改端口
//修改script/start.js
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3001;

3、去除eslint 警告
//config/webpack.config.js
//注释关于eslint的导入和rules规则(编辑器内部得报错、波浪线)

资源限制

  • 本地资源导入(import) 不可以导入src之外的包

  • 图片声音等静态资源的路径,和vue脚手架是同样的(图片路径是静态的,文件放在src/assets下,图片路径是动态的,放在public下)。

在脚手架里做项目的步骤

1、创建目录

? 在src目录下创建以下文件夹:

  • assets :静态资源文件夹

  • components:组件文件夹

    ? /components/a组件/ a.js 和 a.css

  • pages:页面文件夹

  • styles:样式文件夹

2、图片文件夹

1).在public里放图片。

? 把图片放到public文件夹中 直接使用图片名使用(使用绝对路径(img src="/img/image.jpg" />)),这样的图片不会打包

2).使用require引用,require(‘图片的相对路径’),Require中只能使用字符串不能使用变量,这样的图片会打包。如:

<img src={require("…/…/assets/img/banner04.jpg").default} />

反向代理:

https://create-react-app.dev/docs/proxying-api-requests-in-development/

1、安装模块(http-proxy-middleware):

npm install http-proxy-middleware --save-dev
yarn add http-proxy-middleware -D

2、在项目源代码的根目录创建文件: src/setupProxy.js

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  console.log("proxy");
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://xmb8nf.natappfree.cc',
      changeOrigin: true,
      // 重写接口路由
      pathRewrite: {
        '^/api': '' 
      }
    })
  );
};

3、重启服务器

yarn start

第三方脚手架

yeomen/dva/umi

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:15:09  更:2021-11-22 12:15:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:40:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码