react项目:仿airbnb首页(一)項目搭建

328 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情 github地址:

github.com/boombb12138…

建议下载代码,对着代码看

项目搭建

项目的基本配置

  • icon图标
  • jsconfig可以优化vscode的智能提示
  • ..

编写组件内部代码的顺序

  1. 组件内部状态 props/useState
  2. 从redux中获取内容
  3. 自定义hooks
  4. 网络请求、事件监听、副作用
  5. return jsx

搭项目的目录结构

配置别名

craco(create-react-config)第三方库可以配置文件别名 简化路径

安装库 修改package.json 新建craco.config配置webpack

安装less 配置less

安装第三方库遇到问题:

谷歌、stackoverflow、英文搜索、第三方库版本问题看对应github的issues

修改配置就要重新run start

CSS样式重置

安装normalize.css 引入

新建reset.css文件 自己重置a img等标签样式

less后面必须加 ;

@textColorSecondary:#222;

Router配置

安装react-router-dom

第三方导入的写在上面

在App.jsx 使用useRoute将route放在router文件里

在views文件夹 一个页面对应一个文件

在router文件夹的index中 懒加载引入页面文件 再配置路由映射

Redux状态管理

安装@reduxjs/toolkit react-redux

在store新建store

在index引入provider provider包裹App并传入store

2种方法都使用:

  1. createSlice在home.js
  2. 普通方式:4个文件,此方法在entire中

Axios

安装axios

request中做二次封装 导出实例

  • config单独放请求URL和超时时间

  • index 封装QnRequest对数据拦截 暴露request、get、post请求方法

modules是不同模块的网络请求

在useEffect中发送网络请求 否则每次刷新都会发送请求

可选链 如果没有值就返回undefined不执行后续代码