摘要:基礎(chǔ)知識(shí)使用腳手架創(chuàng)建項(xiàng)目并啟動(dòng)安裝腳手架使用腳手架創(chuàng)建項(xiàng)目為項(xiàng)目名。否則可能導(dǎo)致項(xiàng)目發(fā)布上線后,報(bào)錯(cuò)無法執(zhí)行。安裝測(cè)試使用注意默認(rèn)情況下安裝的需要引入才會(huì)生效樣式,但很多時(shí)候,我們只是使用了部分組件,引入整個(gè)樣式文件,有些得不償失。
基礎(chǔ)知識(shí)
? 1.1 安裝腳手架:
npm install -g create-react-app
? 1.2 使用腳手架創(chuàng)建項(xiàng)目:
create-react-app antd-start-demo antd-start-demo為項(xiàng)目名。
? 1.3 啟動(dòng)
npm start
? 2.1 安裝yarn:
npm install -g yarn
? 2.2 獲取yarn當(dāng)前的鏡像源:
yarn config get registry
? 2.3 設(shè)置為淘寶鏡像:
yarn config set registry "https://registry.npm.taobao.org"
? 2.4 常用命令:
yarn init --初始化 yarn add --添加模塊 yarn remove --刪除模塊 yarn /yarn install --安裝項(xiàng)目中的依賴項(xiàng)目搭建
yarn add react-router-dom axios less-loader
yarn eject
? antd是基于less開發(fā)的,我們使用less可以方便的改變主題色等配置。
? 安裝less模塊:yarn add less@2.7.3
? 打開config/webpack.config.dev.js添加如下配置:
{ 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同級(jí)如圖所示
注意:在webpack.config.dev.js添加的配置部分,也需要在webpack.config.prod.js中做相同的配置。否則可能導(dǎo)致項(xiàng)目發(fā)布上線后,報(bào)錯(cuò)無法執(zhí)行。
yarn add antd
import { Button } from "antd"; import "antd/dist/antd.css"; ... render() { return (); } ...
注意:默認(rèn)情況下安裝的antd需要引入antd/dist/antd.css才會(huì)生效樣式,但很多時(shí)候,我們只是使用了部分組件,引入整個(gè)antd樣式文件,有些得不償失。所以按需加載應(yīng)運(yùn)而生。
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, }, },
進(jìn)行修改plugin下添加:
["import", { "libraryName": "antd", "style": true }]
至此可以取消引入css文件了,babel會(huì)自動(dòng)根據(jù)引入的組件,默認(rèn)加載對(duì)應(yīng)的css。
{ loader: require.resolve("less-loader"), options: { modules: false, modifyVars: { "@primary-color": "#f9c700" } } }
在webpack,中配置less的地方即可修改。@primary-color為antd內(nèi)置的less變量,只需要覆蓋掉默認(rèn)的配置,就實(shí)現(xiàn)了修改主題色。
本文GitHub代碼:GitHub地址 歡迎star!
作者博客:做全棧攻城獅
分享交流前后端知識(shí),一起做全棧攻城獅。
我的博客即將同步至騰訊云+社區(qū),邀請(qǐng)大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2y2zuha3q6uc0
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/117088.html
摘要:簡(jiǎn)潔直觀強(qiáng)悍的前端開發(fā)框架,讓開發(fā)更迅速簡(jiǎn)單。是一套基于的前端框架。首個(gè)版本發(fā)布于年金秋,她區(qū)別于那些基于底層的框架,卻并非逆道而行,而是信奉返璞歸真之道。 2017-1209 ZanUI (Vue) 2017-1218 Onsen UI(Vue, React, Angular) 2017-1215 增加 Vuetify, Weex UI, Semantic UI React,ele...
摘要:簡(jiǎn)潔直觀強(qiáng)悍的前端開發(fā)框架,讓開發(fā)更迅速簡(jiǎn)單。是一套基于的前端框架。首個(gè)版本發(fā)布于年金秋,她區(qū)別于那些基于底層的框架,卻并非逆道而行,而是信奉返璞歸真之道。 2017-1209 ZanUI (Vue) 2017-1218 Onsen UI(Vue, React, Angular) 2017-1215 增加 Vuetify, Weex UI, Semantic UI React,ele...
閱讀 2550·2023-04-26 00:56
閱讀 2007·2021-10-25 09:46
閱讀 1240·2019-10-29 15:13
閱讀 815·2019-08-30 15:54
閱讀 2196·2019-08-29 17:10
閱讀 2617·2019-08-29 15:43
閱讀 501·2019-08-29 15:28
閱讀 3027·2019-08-29 13:24