使用dva搭建后台管理

使用 dva 脚手架去搭建一个后台管理项目。

为什么选它?

  1. 基于 React, 与我司技术栈相符。

  2. 需要登录,角色的权限分配已经封装好了。

  3. 内嵌 Antd, 大量丰富的组件可以调用。

项目的结构:

  1. routes

如何封装前端的api

这篇讲讲请求函数如何写的问题。

一般来说,最原始的是这样的:

export function fetch(q) {
  if(!q.page_size){
    q.page_size = 10
  }
  if(!q.page_index){
    q.page_index = 1
  }
  const query = jqparam(q)

单例模式

单例模式:一个 对象 只能创建一个实例。

背景:使用构造函数来创建实例,每一个实例都不相等。单例模式,需要我们改变一下,使用同一个构造函数创建出来的实例只有相同的一个实例。

实现方式: 一:使用静态属性来存储这个实例,在每一次调用构造函数的时候,检查实例是否存在,存在就返回现有的实例,不存在,就创建这个实例并用属性存储。 function Universe

Promise

之前使用 setTimeout 去模仿每隔一秒输出 数字的例子,因为 setTimeout 是模仿异步的,那么是不是有些真正的异步的方法去解决这个问题呢?答案是有的。我们先看看 Promise 是什么东西。

  • The Promise object is used for asynchronous computations. A Promise represents a

setTimeout

关于 setTimeout,之前并没有很详细去了解它,以前使用的情况多是等待几秒去实现一个动效的情况。最近和同事谈论了关于闭包的东西,里面涉及到了 setTimeout 函数,讨论是从一道题目开始。

我们想要的结果是,每隔一秒去输出相应的日期和 5,0,1,2,3,4。日期是用来准确计算时间是否是相隔一秒的。而给出的代码如下: for( var i = 0; i <