浏览器基础
fetch
XMLHttpRequest
location的使用
你去做,然后获得结果,而非你去想
表格,分页,模态框,表单,列表 这就是后台的基础。
数据-展示
antd Table组件的使用
使用this.setState时候发生的怪事,我去监听分页上面的onChange,然后使用setSate修改pageNo,结果发现我的接口携带的pageNo并不是我想要的,原来都是setState异步的锅。。。所以如果是强依赖的的字段,可以使用过setState({}, callback)里面的callback,确保修改state之后再去调用。
错误代码示范
onChange: (page, pageSize) => {
this.setState({pageNo: page, pageSize: pageSize});
this.reloadFunc();
//reloadFunc中使用了this.state.pageSize字段
}
修复后的代码
onChange: (page, pageSize) => {
this.setState({pageNo: page, pageSize: pageSize}, this.reloadFunc)}
}
antd Modal的使用
Modal visiable = {this.state.visable}
不需要使用情况下visable = false,当需要的时候visable = true就可以把表单唤起了
例如:
点击的时候,我把Table的record设置到this.state中,并且在this.setSate中添加回调函数
this.setState({record: record}, ()=>{this.setState({visible:true})
this.state被修改后,我把modal展示出来,接下来就可以任你摆布了。
antd 表单的使用
受控的组件,状态由react管理
非受控组件, 状态由dom管理
表单中最常用的又包括input, datepicker
antd Input onChange
antd DatePicker showTime
antd List使用, 一个是加载的状态,另一个是是否有更多的标志
插播一条数据库知识
跨库连表
起因是这样的:支付表,业务订单表,用户表分别处于不同的mysql实例下,我想通过支付表中的一个字段的值,查询到在用户表的信息。
目前存在问题:三个表的查询竟然占用了10s左右的时间,不敢随便去查了
下面针对mysql数据库来说
数据库链接,就是数据库实例
数据库,就是show databases中展示的数据库
数据表,就是show tables中展示的表
远古时代,网络不好,也就没有分布式数据库太多出场机会。可是到了现代,分布式架构越来越常见,有没有一种方式可以把两个独立的数据当作一个库那样来访问呢?
A database link is a connection between two physical database servers that allows a client to access them as one logical database.
oracle提供了database links的概念,阿里云的数据库也添加了Dblink的概念,这样都给我们提供了可以跨库查询的能力。
/*** 使用流程
(1) 创建DBLink
(2) 编写并运行跨数据库实例查询SQL
示例SQL
SELECT *
FROM dblink1.db1.table1 t1,
dblink2.db2.table2 t2
where t1.id= t2.id
***/