项目的坑(持续更新)

项目规范


1

需要循环的内容必须要经过判断,由外至里的判断防止循环报错。此外不循环的变量也要做无值处理

2

所有的图片给定父级高宽并设置默认背景站位图,给自身宽百分百。

3

所有关于后台生成的文字都要做文字溢出处理

4

在处理state的问题上,用函数改变state。用箭头函数来规避this指向问题。

state = { isOnOver: false };
  onSwitch = () => {
    this.setState(pre => ({ isOnOver: !pre.isOnOver }));
  };
  //pre表示原state

5

在flex布局中最好不要写死宽度采用百分百的形式,全部设为块级元素,防止iebug。

6

利用取反,来减少代码量。如鼠标进入事件和离开事件。

8

在函数需要参数时要
onClick={() => this.handClick("new")}这种形式。

9

在react中多使用三元表达式,另外一元表达式也很重要。重要的是减小冗余。

10

isShow? 123 :null
这种三元表达式有返回空值时直接用 isShow&&123 这种一元表达式。

11

在类名判断的时候注意不要返回null会增加一个新的名为null的类名
class=“${ isHot? "123" :"这里面写空字符不要写null"}

12

在react中需要粘贴复制的东西都要考虑用组件来完成。

13

在使用 axios 进行 ajax 请求的时候,{responseType: "blob"}表示请求二进制文件,一般用于图片验证码。请求的二进制文件不能被img标签的src识别需要 URL.createObjectURL()对其进行创建 url。

如下:

const urlCreator = window.URL || window.webkitURL;
const imageUrl = urlCreator.createObjectURL(response);

14
在父级高度未确定的时候使用height:100%是以自身高度为标准,这时候使用height:inherit
可参考这里

15
flex 布局中用flex:1来表示剩余宽度的方式对文字类的内容溢出是无效的,也就是文字溢出时会超出剩余的宽度造成样式紊乱。实际上 flex 布局并没有想象的自带overflwo:hidden的效果。事实上 flex 并不能解决文字溢出问题,仍然需要overflow:hidden的方式解决。flex:1的问题也同样这样解决。这里

xxx {
  flex: 1;
  overflow: hidden;
}

16
flex:none表示展示自身高宽。不会被其他兄弟元素挤压缩小。

17
使用定位的元素要注意层级关系。注意浏览器未全屏是绝对定位元素的位置。

18
文字移除的省略号显示元素本身要有宽度,没有的宽度的可以设置max-width:100%或者display:inline-block因为在flex布局中text-overflow: ellipsis是无效的。
max-width设置时父级应有宽度。或用width:inherit

overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

19
定位元素的垂直居中最好用

top: 50%;
transform: translateY(-50%);

不过使用百分比会有 21 的问题。

20
组件封装的时候传值,用...rest 代替不重要的参数。rest 必须写在最后。

export default ({ ver, hor, btnClass, path, icoClass, con, ...rest }) => (

);

21
该问题实在实现定位元素垂直居中是遇见的。这里
如果元素高度为奇数是,transform:translate(10%)的参数又是百分比时会造成字体抖动和模糊,因为在计算距离时有小数。字体渲染会出问题。解决办法有 1.元素高度或宽度设置偶数。 2.translate()参数设置为具体数值。 3.为了垂直居中嵌套一个高度height:100%的父级。给父级设置flex实现居中。

在 react 的路由跳转时想要跳到具体某个锚点时在路由地址位置后加入#id。例如/home#id

overflow:hidden在解决元素没有宽度的时候有很大用处。主要是出发了 BFC。

flex 布局中可能会有高度和宽度失效的情况(只是不能获取数值),这取决于主轴方向,横向没高度,竖向没宽度.
这个时候flex:1或其他子元素的子元素都不能使用height:100%.

有时候要灵活运用 max-height 和 min-height.

设置 min-height 的元素的子元素不能使用height:100%.

height:100%一定要实现除了给父级写死高度外。可以使用定位的方法。即父级相对定位子级绝对定位。

在 react 中进行属性传值如果要传false可以xxx={false}的形式。要传true写上属性名字就行了例如isrank 属性就是 true.

在变量获取不到的时候,先要检查变量名是否重复。

阴影被隐藏的问题。一旦子元素的 width 挤满父元素,那么他的阴影就会被父元素(左右)盖住。

所有在写阴影的时候最好四周都有边距。

overflow:hidden是针对于 paddingbox 的,所有子元素的 border 会被覆盖,边框阴影更不用说了。

你可能感兴趣的:(项目的坑(持续更新))