基于create-react-app官方脚手架搭建dva模式的项目(二)

接上一篇:https://blog.csdn.net/xw505501936/article/details/80621740

先来看下现有项目:

点击 去BBB页面 如下:

点击 去CCC页面 如下:

好,以上是现有项目情况。

下面我们让页面稍微美观一些,引入UI库,这里依然选用阿里系的antd(具体不做介绍,有兴趣的同学可官网查阅,此UI库也有针对angular的版本,也有mobile移动版,还有自己的antd脚手架,很优秀的UI库哦)

1 安装antd

cnpm i antd --save

修改AAA.js文件:

import React, { Component } from 'react';
import { Link } from 'dva/router';
import { Button } from 'antd';

class AAA extends Component {
  render() {
    return (
      <div>
        <p>
          AAA页
        </p>
        <Link to={'/aaa/bbb'}>
          <Button type={'primary'} icon={'link'}>
            去BBB页面
          </Button>
        </Link>
        <br />
        <Link to={'/ccc'}>
          <Button type={'default'} icon={'enter'}>
            去CCC页面
          </Button>
        </Link>
      </div>
    );
  }
}

export default AAA;

 

然后运行npm start,不出意外,会按预期出现按钮形态的页面,好我们刷新页面:

 

为什么没有样式?

不要着急,使用antd的时候,还需要一些配置的,

2 样式引入,antd官方给出两种引入方式:

(1)全局一次性引入样式

(2)按需加载样式(当然我们最终会使用这种咯)

首页说一下全局一次性引入方式:

在src下的index.css目录中直接@import '~antd/dist/antd.css'; 引入即可,刷新页面如下:

但是这种一次性把样式文件全部引入,对资源的占用和性能消耗不友好,故我们采用按需引用方式。

这里特别说明:按需引入的方式,与之前我们创建create-react-app项目时,是否eject暴露配置不同,也就是没有eject的引入方式和eject过的引入方式有差异;因我们的项目暴露配置了,这里只讲eject过的配置方法,至于未eject的配置方法antd官方有详细说明:https://ant.design/docs/react/use-with-create-react-app-cn

3 安装babel-plugin-import,这是一个用于按需加载组件代码和样式的 babel 插件

cnpm i babel-plugin-import --save //antd按需加载

首先去除index.css中的引入;

然后修改相关配置,有两种方式可处理,二者选其一即可:

(1)package.json文件中找到babel配置项增加如下代码:

"plugins": [
      [
        "import",
        {
          "libraryName": "antd",
          "style": "css"
        }
      ]
    ]

修改完后如图:

此时,重启服务,刷新页面即可看到:

(2)第二种方式需修改config目录下的webpack.config.dev.js和webpack.config.prod.js,切记开发环境和生产环境一并修改了,一遍之后编译打包时,避免不必要错误;

打开文件,搜索babel-loader,找到options添加如下:

 

以上两种方式均可实现,antd样式的按需引入,觉得OK了吧,NO NO NO,到现在我们引入的都是css,其实我们知道less和sacc才是样式系的王者,没错接下来,快乐的把css替换为less吧(antd官方也推荐使用less方式,便于样式覆盖和主体定义,灵活性可想而知)。

4 less样式配置

同样,此处的配置页分为eject过的项目和未eject的项目两种,后者antd逛网有详细描述可参考,此处只讲本项目中的配置方式,要用less,当然少不了安装less和less-loader了,运行安装:

cnpm i less less-loader --save

默认的脚手架中不支持less的,那我们就要配置咯,打开webpack.config.dev.js和webpack.config.prod.js,记得两者一并修改了;

步骤1 找到 .css 修改为 .(css|less)

步骤2 在use中增加代码,引入less-loader:

{
  loader:require.resolve('less-loader'),
  options: { javascriptEnabled: true }
}

如图:

步骤3 修改package.json的babel配置项:

style项可设置为true或者“css”均可

步骤4 修改src下index.css为index.less

步骤5 修改src下index.js中引入的index.css为index.less 如图:

 

至此,重启服务npm start刷新页面:

 

less配置已经成功。

转下一篇:https://blog.csdn.net/xw505501936/article/details/80625626

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值