ant design pro 当中改变ant design 组件的样式和 数据管理
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 组件的样式和 数据管理的更多相关文章
- react使用ant design pro时的滑动图片组件
react的滑动图片验证,是基于https://segmentfault.com/a/1190000018309458?utm_source=tag-newest做的修改,改动的主要有以下几点: 1. ...
- 轻松玩转Ant Design Pro一
ant design pro来源于ant design,其是一段自带样式的react组件,用于企业后台的漂亮的,可控的组件.ant design有很多组件和样式,不可能所有都记住,我们只要记住常用的, ...
- 测试平台系列(5) 引入Ant Design Pro
引入Ant Design Pro 回顾 还是继续回顾下之前的作业, 返回的中文变成了ascii字符,不要紧,我们光荣地百度一哈. 随便点进去看看,都可以找到正确答案: 可以看到,我们需要修改confi ...
- ant design pro (七)和服务端进行交互
一.概述 原文地址:https://pro.ant.design/docs/server-cn Ant Design Pro 是一套基于 React 技术栈的单页面应用,我们提供的是前端代码和本地模拟 ...
- ant design pro (六)样式
一.概述 参看地址:https://pro.ant.design/docs/style-cn 基础的 CSS 知识或查阅属性,可以参考 MDN文档. 二.详细介绍 2.1.less Ant Desig ...
- 初探ant design pro
1.增加路由子页面&配置菜单 因为ant design pro采取的是umi路由配置,所以只要在对应的文件夹下新建相关的文件夹以及文件,它会自动解析.按照如下的步骤做即可 PS.如果想要给菜单 ...
- 使用ant design pro搭建项目
脚手架搭建 git clone --depth=1 https://github.com/ant-design/ant-design-pro.git my-project 然后 cd my-proje ...
- Ant Design Pro 脚手架+umiJS 实践总结
一.简介 1.Ant Design Pro Ant Design Pro是一款搭建中后台管理控制台的脚手架 ,基于React,dva.js,Ant Design (1)其中dva主要是控制数据流向,是 ...
- ant design pro超详细入门教程
1.Ant Design Pro 初了解 说到ant design pro,得先了解一下ant design是个什么东西?ant design蚂蚁金服基于react打造的一个服务于企业级产品的UI框架 ...
随机推荐
- 温故知新-多线程-深入刨析CAS
文章目录 摘要 CAS是什么? CAS是如何实现的? CAS存在的问题? 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 ...
- Vue点击改变属性(改变文字颜色)
<template> <div class="tab-control"> <div v-for="(item , index) in tit ...
- Qt自动生成.rc文件并配置对应属性 程序图标 版本 描述等
Qt项目配置文件pro里需要如下配置,进行qmake,build后会自动生成.rc文件,并将对应的信息写入文件中 VERSION = 1.0.0.1 RC_ICONS = "http.ico ...
- KVM的web
如果报错!就如下操作 [root@kvm images]# chmod +x /etc/rc.local [root@kvm images]# chmod +x /etc/rc.d/rc.local ...
- MSSQL(DAC环境一下一些特殊的访问方式)
MSSQL(在DAC环境下访问: 存储过程) Server name: admin:计算机名\实例名 or admin:IP地址\实例名 ...
- matlab 梯度法(最速下降法)
norm(A,p)当A是向量时norm(A,p) Returns sum(abs(A).^zhip)^(/p), for any <= p <= ∞.norm(A) Returns nor ...
- 3 年经验的 Java 后端妹子,横扫阿里、滴滴、美团,整理出这份厚厚的 8000 字面经!
自序 这次面试的公司有一点点多,主要是因为毕业后前两份工作找的都很草率,这次换工作就想着,emm,毕业三年了,该找个工作好好沉淀几年了. 先说下这次面试的结果吧: 到 hr 面的:阿里.美团.滴滴.金 ...
- 力扣:二叉树着色游戏(DFS详解)
有两位极客玩家参与了一场「二叉树着色」的游戏.游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同. 游戏从「一号」玩家开始(「一号 ...
- 一文搞定Redis五大数据类型及应用场景
本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...
- linux环境下搭建Jenkins持续集成(Jenkins+git+shell+maven+tomact)
准备环境 jenkins.war包 ,jdk1.8 ,tomact , maven,git 1.Jenkins war包,下载地址https://jenkins.io/zh/download/ ...