ant design pro 简介

官网简介

链接 https://pro.ant.design/docs/getting-started-cn
项目结构 https://github.com/ant-design/ant-design-pro

Ant Design Pro 是一个企业级中后台前端/设计解决方案,我们秉承 Ant Design 的设计价值观,致力于在设计规范和基础组件的基础上,继续向上构建,提炼出典型模板/业务组件/配套设计资源,进一步提升企业级中后台产品设计研发过程中的『用户』和『设计者』的体验。随着『设计者』的不断反馈,我们将持续迭代,逐步沉淀和总结出更多设计模式和相应的代码实现,阐述中后台产品模板/组件/业务场景的最佳实践,也十分期待你的参与和共建。

我的理解

ant design pro 是快速搭建web端的后台管理信息系统的框架,在其中,我们可以使用ant design 这个ui 库,也可以使用框架中提供的很多页面,里面也存在图表等一些组件,让我们不必要画更多时间去学习echart,highchart,这种图表插件。

可能有人会存在疑问,我们通过css来改变ui库的原始css属性没那么容易。ant design pro 提供了一种less写法,我们可以给我们所使用的组件绑定一个class的名字,然后确定element当中我们需要改变样式的元素类名,然后通过嵌套选中的形式,就可以改变我们想改变的元素样式。

第一个问题:改变ant design 的原始样式

less 文件

.and_collapse_list{
td[class='ant-table-row-cell-break-word']{
position: relative;
line-height: 20px;
}
}

jsx文件

 // 1. 引入我们要使用的less
import style from "./collapselist.less"
<Table columns={columns} dataSource={iOSList} bordered className={style.and_collapse_list} />

在这里,我给Table 绑定了 and_collapse_list 这个类名,然后通过 td[class='ant-table-row-cell-break-word'] 标签名字+ class 的方式 确定一个元素,改变他的样式。

第二个问题 ant design pro 当中数据管理的方式

在pro项目当中,存在一个封装好的请求方式"umi-request"

umi-request链接:https://github.com/umijs/umi-request

我们可以在这个基础方进行二次封装,也可以直接使用他发起异步请求

一般我们数据维护需要三个文件

  • 存放数据请求的js 可以叫api.js
  • 数据管理的js 可以叫model.js
  • 视图容器jsx 这个就是你的页面,通过他发起请求,渲染数据
  • 引入我们新建的model dva.js 里面 app.model({ namespace: '命令空间', ...(require('路径').default) });

话不多说直接上代码

api.js

// 这里用到的是我们二次封装好的request.js
import request from '@/utils/request'; // 这里导出一个async 或者 普通函数都不影响
export async function getA(newData) {
return request("/a",{
method: "post",
headers: {},
data: newData
})
} export async function getB(newData) {
return request("/b",{
method: "post",
headers: {},
data: newData
})
}

model.js

import {getA,getB} from 'api.js'
const CollapseModel = {
// 这里是每一个model的命名空间,是唯一的。
namespace : "collapse",
// 这里就是仓库里面的值
state : {
AndInfo:{},
IosInfo:{}
},
// 这里存放异步方法
effects : {
// * 是es6当中generetor 生成器函数
// {payload,callback} 这里是传递过来的参数 用到了解构赋值
// call 是用来调用异步方法的,如果你想在jsx当中使用异步请求回来的值需要使用这个回掉函数。
// put 是用来调用reducer当中的同步的方法
*getA({payload,callback},{call,put}) { let {newData} = payload
const data = yield call(getA,newData)
if(callback){
// 把data传递给我们的callback,让我们jsx当中对的callback可以使用它
callback(data)
}
},
*getB({payload,callback},{call,put}) {
let {newData} = payload
const data = yield call(getB,newData)
if(callback){
callback(data)
}
},
},
// reducer 是一个纯函数 这个可以去百度了解一下。同样的输入换取同样的输出
// 如果对概念不理解,那么就可以仿照我的写法。记住不可以直接改变state
reducers: {
saveA(state,{payload}) {
let newState = JSON.parse(JSON.stringify(state))
newState.IosInfo =payload.data
console.log(newState)
return newState
}
},
}
export default CollapseModel

jsx 我们的页面

// 必须引入这个高阶函数,把我们的组件和model联系起来,如果熟悉redux的话,实际就是在我们的组件外层包裹了Provider 并且提供了一个store。让仓库的数据穿透我们的组件
// 高阶函数就是将函数作为参数传递给另一个函数
import { connect } from 'dva';
// 这是一个修饰器写法 实际是通过connect函数把我们的组件传递进去,并且返回一个新的组件
// 第一个参数是mapstate 是对传递过来的值进行处理,类似vue中的计算属性,第二个参数就是组件
// 比如在这里我要使用 model 文件中 state 里面的 AndInfo
@connect((collapse) => ({
AndInfo:collapse.AndInfo
})) //使用这个值 是通过this.props获取的
componentDidMount() {
const {AndInfo,dispatch} = this.props
// 调用model 里面的方法 必须通过dispatch
dispatch({
type:"collapse/getA",
payload:{
newData:{a:"123"}
},
// 因为我们把一个函数当作一个变量进行传递所以在这个过程当中一定需要绑定this
callback:this.callbackA.bind(this)
})
} callbackA = (res) =>{
... }

ant design pro 当中改变ant design 组件的样式和 数据管理的更多相关文章

  1. react使用ant design pro时的滑动图片组件

    react的滑动图片验证,是基于https://segmentfault.com/a/1190000018309458?utm_source=tag-newest做的修改,改动的主要有以下几点: 1. ...

  2. 轻松玩转Ant Design Pro一

    ant design pro来源于ant design,其是一段自带样式的react组件,用于企业后台的漂亮的,可控的组件.ant design有很多组件和样式,不可能所有都记住,我们只要记住常用的, ...

  3. 测试平台系列(5) 引入Ant Design Pro

    引入Ant Design Pro 回顾 还是继续回顾下之前的作业, 返回的中文变成了ascii字符,不要紧,我们光荣地百度一哈. 随便点进去看看,都可以找到正确答案: 可以看到,我们需要修改confi ...

  4. ant design pro (七)和服务端进行交互

    一.概述 原文地址:https://pro.ant.design/docs/server-cn Ant Design Pro 是一套基于 React 技术栈的单页面应用,我们提供的是前端代码和本地模拟 ...

  5. ant design pro (六)样式

    一.概述 参看地址:https://pro.ant.design/docs/style-cn 基础的 CSS 知识或查阅属性,可以参考 MDN文档. 二.详细介绍 2.1.less Ant Desig ...

  6. 初探ant design pro

    1.增加路由子页面&配置菜单 因为ant design pro采取的是umi路由配置,所以只要在对应的文件夹下新建相关的文件夹以及文件,它会自动解析.按照如下的步骤做即可 PS.如果想要给菜单 ...

  7. 使用ant design pro搭建项目

    脚手架搭建 git clone --depth=1 https://github.com/ant-design/ant-design-pro.git my-project 然后 cd my-proje ...

  8. Ant Design Pro 脚手架+umiJS 实践总结

    一.简介 1.Ant Design Pro Ant Design Pro是一款搭建中后台管理控制台的脚手架 ,基于React,dva.js,Ant Design (1)其中dva主要是控制数据流向,是 ...

  9. ant design pro超详细入门教程

    1.Ant Design Pro 初了解 说到ant design pro,得先了解一下ant design是个什么东西?ant design蚂蚁金服基于react打造的一个服务于企业级产品的UI框架 ...

随机推荐

  1. 05-IntentFilter的匹配规则

    IntentFilter的匹配规则 原则上一个Intent不应该既是显示调用又是隐式调用,如果二者共存的话以显式调用为主 隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过 ...

  2. 05-Python基础4

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  3. Java 中队列同步器 AQS(AbstractQueuedSynchronizer)实现原理

    前言 在 Java 中通过锁来控制多个线程对共享资源的访问,使用 Java 编程语言开发的朋友都知道,可以通过 synchronized 关键字来实现锁的功能,它可以隐式的获取锁,也就是说我们使用该关 ...

  4. 在SpringMVC获取客户端传递的数据的方式

    在处理请求的方法中,加入相对应的形参,保证形参参数名和传递的数据的参数名保持一致,就能够自动赋值 value:当不满足赋值条件时,可以使用value属性,指定映射关系 required:设置形参是否必 ...

  5. C++中类成员的访问控制

    结论 首先给出结论,请看下图,看图说话最容易理解了. 类眼中的自己 类中定义的所有成员,不论是以public, protected还是private修饰,对类自身而言,它们都是可见的. 对象眼中的类 ...

  6. VS Code WebApi系列——2、jwt结合数据库校验

    Knowledge should be shared free. 我们都知道WebApi最重要的作用就是为外部服务提供相应的数据接口和服务,所以一般WebApi都会连接后台数据库,那么最重要的一件事就 ...

  7. Java并发编程-深入Java同步器AQS原理与应用-线程锁必备知识点

    并发编程中我们常会看到AQS这个词,很多朋友都不知道是什么东东,博主经过翻阅一些资料终于了解了,直接进入主题. 简单介绍 AQS是AbstractQueuedSynchronizer类的缩写,这个不用 ...

  8. nfiniband网卡安装、使用总结

    最近多次安装.使用infiniband网卡,每次都要到处寻找相关资料,所以决定做此总结,方便查找. 1. 基础知识 首先,得了解什么是RDMA,贴几个资料: 深入浅出全面解析RDMA RDMA技术详解 ...

  9. Java深拷贝和浅拷贝的区别

    浅拷贝 被复制的对象的所有的变量都与原对象有相同的值,而所有的引用对象仍然指向原来的对象.换言之,浅拷贝 不复制引用对象. 1 class Experience { 2 private String ...

  10. JavaWeb网上图书商城完整项目--27.注册页面之注册按钮图片切换实现

    我们要实现立即注册这个按钮,光标获得焦点是一张图片,光标失去焦点的时候是另外一张图片 我们需要在文档加载完成之后,设置该事件hover事件 hover(over,out)这是jQuery的一个模仿悬停 ...