• 用脚手架创建react-app项目


    npm root -g 查看全局的下载根目录在哪里 有没有安装过create-react-app

    前端开发主流框架之react项目搭建
    1、第一步
      全局安装react
      执行 npm install -g create-react-app
    2、第二步
      创建 项目(三种方式看你哪种能创建成功)
      执行: create-react-app my-app  //  npx create-react-app my-app  //  (npm init react-app my-app)

    3、第三步 安装路由控件
      执行:npm install react-router-dom --save (--save)安装到本地
    4、第四部 安装 axios less-lodar
      (axios )调用接口(less-lodar)把less转换为css 转换识别和转化处理
      执行npm install axios less-loader --save
    5、第五部 暴露webpack等文件配置
      运行:npm run eject生成配置文件
      (如果报错Remove untracked files, stash or commit any changes, and try again.
      npm ERR! code ELIFECYCLE。。。。 )请参考(https://blog.csdn.net/weixin_41606276/article/details/85123919)
    6、第六部   第五步安装成功后生成config文件 在webpack.config.js中配置 less 语法
      首先定义俩个 常量
      const lessRegex = /.less$/;
      const lessModuleRegex = /.module.less$/;
      在module下的rules 配置以下 位置要放在 test: cssModuleRegex,的上边 不然 不会生效
      {
      test: lessRegex,
      exclude: lessModuleRegex,
      use: getStyleLoaders({
      importLoaders: 2,
      sourceMap: isEnvProduction ?shouldUseSourceMap:isEnvDevelopment,
      },
      'less-loader'
      ),
      // Don't consider CSS imports dead code even if the
      // containing package claims to have no side effects.
      // Remove this when webpack adds a warning or an error for this.
      // See https://github.com/webpack/webpack/issues/6571
      sideEffects: true,
      },
      // Adds support for CSS Modules (https://github.com/css-modules/css-modules)
      // using the extension .module.css
      {
      test: lessModuleRegex,
      use: getStyleLoaders({
      importLoaders: 2,
      sourceMap: isEnvProduction ?shouldUseSourceMap:isEnvDevelopment,
      modules: true,
      getLocalIdent: getCSSModuleLocalIdent,
      },
      'less-loader'),
      },
    7、第七部:安装阿里UI库antd
      执行 yanr add antd (npm install antd --save ) 是FQ下载 所有 建议用 yanr add antd

    8、第八步:antd 按需加载 下载babel-plugin-import
      执行:yarn add babel-plugin-import
    9、第九步:antd在webpack 配置按需加载
      module.rules.oneOf.options.plugins:配置
      [
      'import',
      {libraryName:'antd',style:'css'}
      ]
    10、第十步:安装jquery
      执行:方法一:npm install jquery --save (组件使用import $ from 'jquery')
      方法二:也可以在index.html引入jquery库 使用前必须加windos.例如 windos.$
    11、第十一步 路由配置 入口文件引入 import { HashRouter,Route,Switch} from 'react-router-dom'
      import React from 'react';
      import { HashRouter,Route,Switch} from 'react-router-dom'
      // import APP from '../App.jsx'
      import Login from '../component/login/login.jsx'
      import Home from '../component/home/home.jsx'
      import TaskAgentsTaskAgents from '../component/Ceshi/Ceshi.jsx'
      import Num404 from '../component/num404/num404.jsx'
      export default class router extends React.Component {
      
      render() {
      return (
        <HashRouter>
        <Route exact path="/" component={Login}/>
        <Route path="/home"
          render={()=>
          <Home>
            <Route path="/home/TaskAgentsTaskAgents" component={TaskAgentsTaskAgents}></Route>
            <Route component={Num404}></Route>
          </Home>
        }
        />
        </HashRouter>
      );
     }
    exact :这个是精准匹配 切记 如果有子路由 不能 加这个属性 因为是精准匹配 所有子路由配置 不会生效
    其次 react-router-dom 4.0版本 可以基于dom重点是dom包裹所以 封装 可以这么写

    <HashRouter>
    <Route exact path="/" component={Login}/>
    <Route path="/home"
    render={()=>
    <Home>
    <Homerouter/>//这个是引入封装后的组件 效果和上面一样
    </Home>
    }
    />
    </HashRouter>
    12、如果遇到反向代理前端本地配置

      在 package.json 中配置 { "proxy": "XXXXXXXX"}
    13、IE11兼容:执行yarn add react-app-polyfill
      在src/index.js的最顶部引入
      import ‘react-app-polyfill/ie11’;
      import ‘react-app-polyfill/stable’;
      在packge.json文件下 browserlist 添加ie11
      "browserslist": {
      "production": [
      ">0.2%",
      "not dead",
      "not op_mini all",
      "ie 11"
      ],
      "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version",
      "ie 11"
      ]

      },
    以后步骤基本架构完成 后续会更新路由配置
    ES6创建组件方法export default class login extends React.Component{}
    (注意:index.html 引入其他JS库中 获取方法前面必须申明windos 例如 windos.$(‘a’) 把所有的配置(就是你所引用的JS文件)文件需要在Build中配置一份目前还没有找到自动化打包配置文件的方法)

  • 相关阅读:
    Nim or not Nim? HDU
    邂逅明下 HDU
    4.1.8 巴什博弈
    4.1.7 Cutting Game(POJ 2311)
    0.1.2 max_element和min_element的用法
    bzoj 2152 聪聪可可 树形dp
    hdu 5976 Detachment 脑洞题 猜结论
    hdu 5974 A Simple Math Problem gcd(x,y)=gcd((x+y),lcm(x,y))
    hdu 5971 Wrestling Match 二分图染色
    Codeforces 842C Ilya And The Tree 树上gcd
  • 原文地址:https://www.cnblogs.com/HZGSir/p/12682529.html
Copyright © 2020-2023  润新知