当前位置:   article > 正文

创建react项目_新建react嘤嘤

新建react嘤嘤

1.创建项目

1, 安装react代码行工具(脚手架), 基于webpack工具构建项目

npm install -g create-react-app


2,创建一个react应用程序, my-app是自定义项目名
  

  create-react-app my-app


3,启动react项目 (需要cd进入项目my-app根目录)
    

npm start

注意: 在使用 create-react-app 来创建一个新的React应用,在拉取各种资源时,往往会非常慢,一直卡在那,因为资源还是使用了 npm下载的, 我们可以换成淘宝的资源, 执行指令
  

 npm config set registry https://registry.npm.taobao.org


可以把npm指令替换成cnpm指令 


问题: 安装脚手架报错: The fs.promises API is experimental
原因: npm版本过高或node版本过低 
解决: npm i npm@6.4.1 -g


=============  使用 vite工具构建项目  ================

1, 安装vite构建工具
  

 cnpm i vite create-vite -g


2, 使用vite构建项目, 选择react
  

 npm init vite


3, 切换到项目根目录, 安装依赖包
  

  cnpm i   /  npm i   /  yarn install


4, 运行,启动vite项目
  

 npm run dev

2. vite构建react项目配置代理

  1. 使用vite构建vue项目和react项目,配置代理等信息的方式是一样的
  2. 在vite.config.js中加入以下代码 (针对react,可全选替换)
  3. import { defineConfig } from 'vite'
  4. import react from '@vitejs/plugin-react'
  5. import { fileURLToPath, URL } from "node:url";
  6. // https://vitejs.dev/config/
  7. export default defineConfig({
  8. plugins: [react()],
  9. resolve: {
  10. alias: {
  11. "@": fileURLToPath(new URL("./src", import.meta.url)),
  12. },
  13. },
  14. base: "./",
  15. server: {
  16. host: "localhost",
  17. open: true,
  18. port: 3000,
  19. proxy: {
  20. "/myDouyu": {
  21. target: "http://open.douyucdn.cn/api/RoomApi",
  22. changeOrigin: true,
  23. rewrite: (path) => path.replace(/^\/myDouyu/, ""),
  24. },
  25. },
  26. }
  27. })

3.webpack构建react项目配置代理

  1. 1, 下载安装代理模块
  2. cnpm install http-proxy-middleware --save
  3. 2, 在src目录中新建setupProxy.js文件,在文件中放入如下代码(注意是src目录,不是根目录):
  4. const { createProxyMiddleware } = require('http-proxy-middleware')
  5. module.exports = function (app) {
  6. app.use(createProxyMiddleware('/api',
  7. {
  8. target: 'http://127.0.0.1:3000',
  9. changeOrigin: true,
  10. pathRewrite: {
  11. "^/api": ""
  12. }
  13. })
  14. )
  15. }
  16. 附加:
  17. 设置项目端口号: node_modules/react-scripts/scripts/start.js
  18. 也可以通过指令 npm run eject 把服务器配置暴漏出来, 修改scripts/start.js (这个指令不可逆)

4.react图片懒加载-vite

  1. 官方地址: https://www.npmjs.com/package/react-lazy-load-image-component
  2. // 适用于vite构建的react项目
  3. 1, 下载安装懒加载模块
  4. cnpm i react-lazy-load-image-component
  5. 2, 在src/assets/目录下放入懒加载占位图 placeholder.gif
  6. 3, 在需要使用懒加载的组件中导入懒加载模块和占位图(blur.css虚化样式)
  7. import { LazyLoadImage } from "react-lazy-load-image-component";
  8. import 'react-lazy-load-image-component/src/effects/blur.css';
  9. import placeholder from "@/asset/placeholder.jpg"
  10. 4, 在组件rander函数中创建占位图片标签img
  11. var holderImg = <img src={placeholder} />
  12. 5, 在组件模板中给需要懒加载的图片替换成LazyLoadImage
  13. <LazyLoadImage
  14. placeholder={holderImg}
  15. alt="图片"
  16. src={item.room_src}
  17. effect="blur"
  18. />

5.react图片懒加载-webpack

  1. // 此模块适用于webpack构建的项目
  2. 1, 下载安装懒加载模块
  3. cnpm i react-lazyload --save
  4. 2, 在src/assets/目录下放入懒加载占位图 placeholder.gif
  5. 3, 在需要使用懒加载的组件中导入懒加载模块和占位图
  6. import LazyLoad from 'react-lazyload';
  7. import placeholder from "../../asset/placeholder.gif"
  8. 4, 在组件rander函数中创建占位图片标签img
  9. var holderImg = <img src={placeholder} />
  10. 5, 在组件模板中给需要懒加载的图片添加LazyLoad父标签
  11. <LazyLoad placeholder={holderImg}>
  12. <img src={item.room_src} alt="这是一个图片" />
  13. </LazyLoad >

5.React中如何实现样式隔离

  1. 在react组件中,默认所有的样式文件都是全局作用域,不存在样式隔离
  2. 方法一: 根标签选择器限制
  3. 如果需要每个组件样式隔离, 在设置组件样式时, 每一个选择器都添加组件根标签选择器, 以区分不同组件中的样式
  4. 方法二: 使用CSS Modules css模块化
  5. 1, 创建组件样式文件时以 xxx.module.css命名, 例如 Home.module.css 代替 Home.css
  6. 2, 在组件jsx导入样式文件时使用 import styles from './xxx.module.css' 导入 代替 import './xxx.css'
  7. 3, 在组件中需要设置样式的标签上添加class值, className={styles.yyy} 其中yyy指的是css样式中的class
  8. 4, 在xxx.module.css中通过 .yyy{} 设置样式,即为局部样式
  9. 一般建议:
  10. 自定义组件的样式,自己写的样式使用方法一
  11. 第三方导入的组件或样式文件,使用方法二

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/671223
推荐阅读
相关标签
  

闽ICP备14008679号