reactにおけるUIライブラリantdのインストールと関連構成

5222 ワード

一、uiライブラリ


       npm i antd         ant design mobile (mobile)               ant design (pc) 
(1)グローバル導入(一般的には用いない)
入り口でjsにimport'antd/dist/antdを導入する.css';
コンポーネントにコンポーネントを導入すれば使用できます.例えば、コンポーネントにbuttonを使用します.
import{Button}from'antd'を導入します.
        xxx
(2)オンデマンドロード(共通)
              1)  npm i  react-app-rewired customize-cra
react-app-rewired弾射なしでwebpack customize-craカスタム足場環境を構成
2)package.jsonでの修正(3項目)
              "scripts": {
                    "start": "react-app-rewired start",
                    "build": "react-app-rewired build",
                    "test": "react-app-rewired test",
                    "eject": "react-scripts eject"
                },
            3) npm i  babel-plugin-import
4)プロジェクトのルートディレクトリにプロファイルconfig-overridesを作成する.jsはconfig-overrides.jsファイルには次のコードが書かれています.
          
 const { override, fixBabelImports } = require('customize-cra');

            module.exports = override(

                   fixBabelImports('import', {

                     libraryName: 'antd',

                     libraryDirectory: 'es',

                     style: 'css',

                   }),

                 );

5)カスタムテーマ(必要に応じて使用可能)
1)npm i lessとnpm i less-loaderのインストール
2)config-overrides.jsファイルには次のコードが書かれています.
const { override, fixBabelImports,addLessLoader } = require('customize-cra');
module.exports = override(
       fixBabelImports('import', {
         libraryName: 'antd',
         libraryDirectory: 'es',
         style: true,
       }),
        addLessLoader({
           javascriptEnabled: true,
           modifyVars: { '@primary-color': '#00F' },
         })
     );

二,.react cli環境で@でsrcを指す(詳細コードは以下を参照)


1)config-overrides.jsファイルにはconst{addWebpackAlias}=require('customize-cra')が導入されています.
const{resolve}=require('path')を導入
moduleでexports=overrid({
addWebpackAlias({
              '@': resolve('src')
           })
})    
​
const { override, fixBabelImports,addLessLoader,addWebpackAlias  } = 
require('customize-cra');
const {resolve}=require("path");
module.exports = override(
       fixBabelImports('import', {
         libraryName: 'antd',
         libraryDirectory: 'es',
         style: true,
       }),
        addLessLoader({
           javascriptEnabled: true,
           modifyVars: { '@primary-color': '#00F' },
         }),
         addWebpackAlias({
          '@': resolve('src')
      })
     );

​

三.,アクセサリーの設定


1)npm i@babel/plugin-proposal-decoratorsのインストール
2)config-overrides.jsファイルにconst{addDecoratorsLegacy}=require('customize-cra');
そしてmoduleでexports=overrid({
addDecoratorsLegacy()の追加
})(詳細コードは以下のとおり)
const { override, fixBabelImports,addLessLoader,addWebpackAlias,addDecoratorsLegacy } = 
require('customize-cra');
const {resolve}=require("path");
module.exports = override(
  addDecoratorsLegacy(),
       fixBabelImports('import', {
         libraryName: 'antd',
         libraryDirectory: 'es',
         style: true,
       }),
        addLessLoader({
           javascriptEnabled: true,
           modifyVars: { '@primary-color': '#00F' },
         }),
         addWebpackAlias({
          '@': resolve('src')
      })
     );

4)@上位コンポーネント(パラメータ)を適用する(パラメータがあれば括弧、ない場合は付けない)(例は以下の通り)
classコンポーネントextends Component{
                }        
上位コンポーネント(パラメータ)と等価(コンポーネント)
import React from 'react';

var Hoc=(jf)=> (Com)=>{
    return class extends React.Component {
        render(){
            if(jf>10)
                 return  <> 2020 © qf>
            else{
                return 
} } } } export default Hoc;
import React,{ Component } from 'react'
import Hoc from '../hoc'
 @Hoc(22)
 class One extends Component {
     componentDidMount(){
         fetch("/api/topics").then((res)=>res.json()).then((res)=>{
             console.log(res)
         })
     }
    render() {
        return (
            
One
) } } export default One;

四構成エージェント


1)npm i http-proxy-middlewareのインストール
2)srcディレクトリの下にsetupProxyを新規作成する.jsファイルはこのファイルに次のコードを書きます.
const {createProxyMiddleware} = require('http-proxy-middleware')

module.exports = function(app) {
    app.use('/api', 
    createProxyMiddleware({ 
              target: 'https://cnodejs.org/api/v1',
              changeOrigin: true,
              pathRewrite:{
                  "^/api":"/"
              } 
            }
         ));
}