react网易云PC项目搭建配置

本文介绍了如何组织React项目结构,包括资产、公共组件、页面组件、路由配置和样式管理。重点讲解了如何使用Yarn和Craco进行alias配置,并通过实例演示了如何设置React Router。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. src下目录划分

assets:放我们的静态资源,图片,字体和公共初始样式等
common:放我们公共的JS文件
components:放我们项目的公共组件
pages:放项目的主视图组件
router:放项目的路由配置
services:网络请求部分
store:放redux的相关配置
utils:放一些处理我们数据的JS方法

1. normalize.css resets.css对项目样式进行重置

@import "~antd/dist/antd.css";
@import "~normalize.css";
/* 样式的重置 */
body,
html,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
dl,
dt,
dd,
header,
menu,
section,
p,
input,
td,
th,
ins {
  padding: 0;
  margin: 0;
}

ul,
ol,
li {
  list-style: none;
}

a {
  text-decoration: none;
  color: #666;
}

a:hover {
  color: #666;
  text-decoration: underline;
}

i,
em {
  font-style: normal;
}

input,
textarea,
button,
select,
a {
  outline: none;
  border: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  border: none;
  vertical-align: middle;
}

/* 全局样式 */
body,
textarea,
select,
input,
button {
  font-size: 12px;
  color: #333;
  font-family: Arial, Helvetica, sans-serif;
  background-color: #f5f5f5;
}

/* 文字多的省略号 */
.text-nowrap {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.wrap-v1 {
  width: 1100px;
  margin: 0 auto;
}

.wrap-v2 {
  width: 980px;
  margin: 0 auto;
}

/* 精灵图 */
.sprite_01 {
  background: url(../img/sprite_01.png) no-repeat 0 9999px;
}
/* 图片上显示玻璃的操作 */
.image_cover {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  text-indent: -9999px;
  background: url(../img/sprite_cover.png) no-repeat -145px -57px;
}

2. yarn add @craco/craco配置别名

将react-scripts eject。改为craco

package.json文件中
================================================
"scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test",
    "eject": "react-scripts eject"
  }
  
创建craco.config.js文件
================================================
const path = require("path")

const resolve = dir => path.resolve(__dirname,dir)

module.exports = {
  webpack:{
    alias:{
      "@": resolve("src"),
      "components": resolve("src/components")
    }
  }
}

3.配置路由

yarn add react-router-dom
yarn add react-router-config
直接在router中index.js

import WDiscover from '@/pages/discover';
import WMine from '@/pages/mine'
import WFriend from '@/pages/friend'

const routes = [{
    path: '/discover',
    exact: true,
    component: WDiscover
},
{
    path: '/mine',
    component: WMine
},
{
    path: '/friend',
    component: WFriend
}]

export default routes;
---------------------------------------

import React, { memo } from 'react'
import { renderRoutes } from 'react-router-config'

import routes from './router'

// 组件
import WXHAppHeader from '@/components/app-header'
import WXHAppFooter from '@/components/app-footer'
import { HashRouter } from 'react-router-dom'


export default memo(function App() {
    return ( 
    <HashRouter>
        <WXHAppHeader/> 
        { renderRoutes(routes) } 
        <WXHAppFooter/>
    </HashRouter>
    )
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值