採用React+Ant Design組件化開發前端界面(一)

react-start

基礎知識

1.使用腳手架建立項目並啓動

​ 1.1 安裝腳手架:css

npm install -g create-react-app
複製代碼

​ 1.2 使用腳手架建立項目:react

create-react-app antd-start-demo           antd-start-demo爲項目名。
複製代碼

​ 1.3 啓動webpack

npm start
複製代碼
2.npm轉換爲yarn

​ 2.1 安裝yarn:ios

npm install -g yarn
複製代碼

​ 2.2 獲取yarn當前的鏡像源:git

yarn config get registry
複製代碼

​ 2.3 設置爲淘寶鏡像:github

yarn config set registry 'https://registry.npm.taobao.org'
複製代碼

​ 2.4 經常使用命令:web

yarn init		--初始化
yarn add		--添加模塊
yarn remove		--刪除模塊
yarn /yarn install		--安裝項目中的依賴
複製代碼

項目搭建

2.1 安裝react-router 4.0、axios、less-loader
yarn add react-router-dom axios less-loader
複製代碼
2.2 暴漏webpack配置
yarn eject
複製代碼

webpack配置

2.3 配置less-loader

​ antd是基於less開發的,咱們使用less能夠方便的改變主題色等配置。npm

​ 安裝less模塊:yarn add less@2.7.3json

​ 打開config/webpack.config.dev.js添加以下配置:axios

{
            test: /\.less$/,
            use: [
              require.resolve('style-loader'),
              {
                loader: require.resolve('css-loader'),
                options: { importLoaders: 1 },
              },
              {
                // Options for PostCSS as we reference these options twice
                // Adds vendor prefixing based on your specified browser support in
                // package.json
                loader: require.resolve('postcss-loader'),
                options: {
                  // Necessary for external CSS imports to work
                  // https://github.com/facebook/create-react-app/issues/2677
                  ident: 'postcss',
                  plugins: () => [
                    require('postcss-flexbugs-fixes'),
                    require('postcss-preset-env')({
                      autoprefixer: {
                        flexbox: 'no-2009',
                      },
                      stage: 3,
                    }),
                  ],
                },
              },
              { loader: require.resolve('less-loader') }
            ],
},
複製代碼

到配置cssload同級如圖所示

圖片示例

注意:在webpack.config.dev.js添加的配置部分,也須要在webpack.config.prod.js中作相同的配置。不然可能致使項目發佈上線後,報錯沒法執行。

2.4 安裝antd
yarn add antd
複製代碼
2.5 測試使用
import { Button } from "antd";
import 'antd/dist/antd.css';

...
 render() {
    return (
      <div>
          <Button>click</Button>
      </div>
    );
  }
...
複製代碼

注意:默認狀況下安裝的antd須要引入antd/dist/antd.css纔會生效樣式,但不少時候,咱們只是使用了部分組件,引入整個antd樣式文件,有些得不償失。因此按需加載應運而生。

2.6 antd按需加載

1.添加babel-plugin-import,

yarn add babel-plugin-import

2.打開webpack配置,搜索:JS with Babel

找到以下配置:

// Process application JS with Babel.
          // The preset includes JSX, Flow, TypeScript and some ESnext features.
          {
            test: /\.(js|mjs|jsx|ts|tsx)$/,
            include: paths.appSrc,

            loader: require.resolve('babel-loader'),
            options: {
              customize: require.resolve(
                'babel-preset-react-app/webpack-overrides'
              ),
              
              plugins: [
                [
                  require.resolve('babel-plugin-named-asset-import'),
                  {
                    loaderMap: {
                      svg: {
                        ReactComponent: '@svgr/webpack?-prettier,-svgo![path]',
                      },
                    },
                  },
                ],
              ],
              cacheDirectory: true,
              // Save disk space when time isn't as important cacheCompression: true, compact: true, }, }, 複製代碼

進行修改plugin下添加:

["import", { "libraryName": "antd", "style": true }]

至此能夠取消引入css文件了,babel會自動根據引入的組件,默認加載對應的css。

2.7修改主題色
{
                loader: require.resolve('less-loader'),
                options: {
                  modules: false,
                  modifyVars: {
                    "@primary-color": "#f9c700"
                  }
                }
              }
複製代碼

在webpack,中配置less的地方便可修改。@primary-color爲antd內置的less變量,只須要覆蓋掉默認的配置,就實現了修改主題色。

本文GitHub代碼:GitHub地址

做者博客:作全棧攻城獅

分享交流先後端知識,一塊兒作全棧攻城獅。

相關文章
相關標籤/搜索