zoukankan      html  css  js  c++  java
  • 使用 ts + and design + react-redux + react-router-dom + ahook 开发 管理后台

    初始化:

    yarn create react-app skill --template typescript

     

    安装依赖:

    antd @ant-design/icons  // ant design 相关

    classnames @types/classnames // 样式组合库

    react-redux @types/react-redux

    react-router-dom @types/react-router-dom

    react-dom @types/react-dom

    axios

    dayjs

    node-sass

    ahooks @ahooksjs/use-request @ahooksjs/use-url-state // hook 库

    cnpm i antd @ant-design/icons classnames @types/classnames react-redux @types/react-redux react-router-dom @types/react-router-dom react-dom @types/react-dom axios dayjs node-sass ahooks @ahooksjs/use-request @ahooksjs/use-url-state -S

     

    启动:

    cd my-app && yarn start

     

     

    报错:

     

               

     

    使用scss:

    只需要安装node-sass 即可使用

    cnpm install node-sass --save

    scss变量: @import 'styles/_colors.scss'; // 假设 styles 目录 在 src/ 目录下

    使用css module

    使用 [name].module.css 文件命名约定支持 CSS Modules , 例如Login.module.scss

    ant design 按需加载、主题配置、 别名、打包目录修改

    步骤1: cnpm install react-app-rewired react-app-rewire-less  babel-plugin-import customize-cra -S

    步骤2:根目录添加文件config-overrides.js, 下面是说明

    config-overrides.js

    const {
      override,
      addWebpackAlias,
      fixBabelImports,
      addLessLoader,
    } = require("customize-cra");
    
    
    const path = require('path');
    function resolve(dir) {
      return path.join(__dirname, '.', dir);
    }
    
    // 修改打包文件名,默认 build
    const paths = require('react-scripts/config/paths');
    paths.appBuild = path.join(path.dirname(paths.appBuild), 'dist');
    
    // 主题定制, 变量名
    const theme = require('./them.json')
    
    module.exports = override(
      // 别名配置
      addWebpackAlias({
        '@': resolve('src')
      }),
    
      // 异步加载
      fixBabelImports("import", {
        libraryName: "antd",
        libraryDirectory: "es",
        style: true
      }),
    
      // ant design 主题重置
      // https://github.com/ant-design/ant-design/blob/master/components/style/themes/default.less
      addLessLoader({
        javascriptEnabled: true,
        modifyVars: theme
      })
    )

    theme.json:

    配置别名后,解决ts路径报错:

    根目录添加paths.json文件:

    {
      "compilerOptions": {
        "baseUrl": "src",
        "paths": {
          "@/*": [
            "src/*"
          ]
        }
      }
    }
    

    跟目录下的tsconfig.json文件:

    代理配置、部署路径修改(默认部署在根目录,如果部署在http://10.119.20.177:8080/skill/ 下面参考下面):

    修改 package.json文件:

     最后贴上package.json

    {
      "name": "skill",
      "version": "0.1.0",
      "private": true,
      "dependencies": {
        "@ahooksjs/use-request": "^2.8.0",
        "@ahooksjs/use-url-state": "^2.5.1",
        "@ant-design/icons": "^4.2.2",
        "@ant-design/pro-table": "^2.9.7",
        "@testing-library/jest-dom": "^4.2.4",
        "@testing-library/react": "^9.5.0",
        "@testing-library/user-event": "^7.2.1",
        "@types/classnames": "^2.2.10",
        "@types/jest": "^24.9.1",
        "@types/node": "^12.12.68",
        "@types/react": "^16.9.53",
        "@types/react-dom": "^16.9.8",
        "@types/react-redux": "^7.1.9",
        "@types/react-router-dom": "^5.1.6",
        "@types/store": "^2.0.2",
        "ahooks": "^2.8.0",
        "antd": "^4.7.0",
        "axios": "^0.20.0",
        "babel-plugin-import": "^1.13.1",
        "classnames": "^2.2.6",
        "customize-cra": "^1.0.0",
        "dayjs": "^1.9.3",
        "node-sass": "^4.14.1",
        "react": "^16.14.0",
        "react-app-rewire-less": "^2.1.3",
        "react-app-rewired": "^2.1.6",
        "react-dom": "^16.14.0",
        "react-redux": "^7.2.1",
        "react-router-dom": "^5.2.0",
        "react-scripts": "3.4.3",
        "redux-thunk": "^2.3.0",
        "store": "^2.0.12",
        "typescript": "^3.7.5"
      },
      "homepage": "/skill",
      "proxy": "http://10.109.20.177:8081",
      "scripts": {
        "start": "react-app-rewired start",
        "build": "react-app-rewired build",
        "eject": "react-scripts eject"
      },
      "eslintConfig": {
        "extends": "react-app"
      },
      "browserslist": {
        "production": [
          ">0.2%",
          "not dead",
          "not op_mini all"
        ],
        "development": [
          "last 1 chrome version",
          "last 1 firefox version",
          "last 1 safari version"
        ]
      }
    }
    

      

  • 相关阅读:
    用命令创建MySQL数据库
    Linux下安装mysql
    MySQL字符集及校对规则的理解
    Mybatis 高级结果映射 ResultMap Association Collection
    查看linux系统版本命令
    hdu 1217 Arbitrage (最小生成树)
    hdu 2544 最短路(两点间最短路径)
    hdu 3371 Connect the Cities(最小生成树)
    hdu 1301 Jungle Roads (最小生成树)
    hdu 1875 畅通工程再续(prim方法求得最小生成树)
  • 原文地址:https://www.cnblogs.com/vs1435/p/13921819.html
Copyright © 2011-2022 走看看