前端开发规范要求——“加大空”

1,222 阅读2分钟

今天讲一讲开发中的规范——“加大空”,分别是加载、大于、空值

  1. 加载:页面过渡时需要加载动画。
  2. 大于:数据可能存在过大或过小的情况,此时前端需要做溢出或过小的样式处理。
  3. 空值:任何数据拿到都要判断空异常、以及判断类型异常。

以上错误在初级前端经常会犯,故特此总结,记忆时可记成假大空,方便记忆。

加——页面过渡时需要加载动画

页面过渡时需要加载动画,很多初级前端在写页面的时候从来不考虑加载动画,后台请求数据时,常常是空数据样式直接到有数据的列表,交互体验很差,这是一种很低级的错误。

image.png

常见的加载组件可以使用antD的加载组件骨架屏组件

image.png

一般选用骨架屏,样式更好看。 image.png

大——大于或小于数据展示范围的特殊处理

  1. 数据大于了展示范围,考虑溢出的处理

image.png

这种情况需要加溢出省略处理

image.png

空——空值、异常值的处理

数据空值、异常值的处理,空样式展示。

空样式的处理

判空的处理——可选链式选择语法。

当你在获取一个对象的属性的时候,你可能需要检测这个属性是否存在,否则会报错;比如:

var obj
console.log(obj.name)

会报错:TypeError: Cannot read property 'name' of undefined

特别是后端接口返回的数据,前端数据一般是你自己定义的,有就是有,没有就是没有;

后端有时候说好的有,结果没有…/(ㄒoㄒ)/~~

在这里插入图片描述

开个玩笑,继续~

所以在使用接口返回的数据的时候,要做属性判断,再使用:

if(resp && resp.data) {

this.tableData = resp.data

}

如果属性嵌套很深,就很难受了 ≧ ﹏ ≦

if (person && person.owner && person.owner.permission) {

let usecar = person.owner.permission.usecar

}

所以对于复杂的属性判断,使用 可选链 就很棒了。

它使我们能检查一个对象上面的某属性是否为 null 或者 undefined,如果是,则返回 undefined,而不会报错。

this.tableData = resp?.data

可选链还可以在数组中使用

let moveName = movie.actors?.[0]?.name

可选链 de 三种形式

  • object?.property ;常见的一种
  • object?.[expression] ;用于访问数组项或访问动态属性
  • object?,[arg1, [arg2, ...] ;用于执行对象的一个方法,有时候不知道这个对象的方法是否存在,也可以用可选链来搞
const object = null

object?.method(‘Some value’) // => undefined

短路:遇到 null/undefined 停止

可选链接运算符的有趣之处在于,只要在左侧 leftHandSide?.rightHandSide 遇到无效值,右侧访问就会停止,这称为短路。

看看例子:

const nothing = null;

let index = 0;

nothing?.[index++]; // => undefined

index; // => 0

最后

每次写完代码以后,请默认“加大空”三遍,好好检查自己的代码是否有遗漏。