记录咸鱼的生活----前端问题汇总

汇总一些最近工作中遇到的前端技巧,希望可以帮助到大家,也希望可以帮助到知识不进脑的我😭
因为我是做大屏展示的,虽然前后端都做,但是人手不够的时候我还是做前端多一些
环境: mac idea react+ant Design 4.x

  1. 获取当前屏幕的分辨率(长和宽)
    因为我的项目需要我根据不同的分辨率比例跳转到不同的网页中,所以需要获取当前屏幕的分辨率
window.screen.width   
window.screen.height
  1. 设置scale
    因为项目需要一个32:9和一个16:9的效果,如果不设置scale直接显示就很难看
    首先在需要设置scale的页面加上:
  state = {
    visualScale: 0,
  };
  
  setScale = () => {
    let visualScale;
    //3200和900 是32:9的具体长和宽,可以替换为你需要的长和宽
    let scaleX = window.innerWidth / 3200;  
    let scaleY = window.innerHeight / 900;
    if (scaleY > scaleX) {
      visualScale = scaleX;
    } else {
      visualScale = scaleY;
    }
    this.setState({
      visualScale: visualScale,
    });
  };
  componentDidMount() {
    window.addEventListener('resize', this.setScale);
  }

  componentWillUnmount() {
    window.removeEventListener("resize", this.setScale);
  }
  
  render() {
    return <div className={CSS.layout}>
      <div className={CSS.html}
           style={{transform: 'scale(' + (this.state.visualScale) + ')'}}> //不要忘记加这一句哦
      	......................
      </div>
    </div>
  }
  1. 设置 登录时间 ,有效时间30分钟,30分钟后重新登录
    主要用的就是给cooike一个有效时间,然后每次刷新都要去获取cookie,如果cookie过期被删除,那么就会回到登录页面,而且通过链接直接跳转到其他页面的时候需要判断一下cookie是否过期,如果过期那么直接跳转到登录页面
// 首先需要下载react-cookie包
//npm install react-cookies --save //cnpm也可以
//登录页面
import cookie from "react-cookies";

  formSubmit = (e) => {
    e.preventDefault();
    const {getFieldsValue} = this.formRef.current;
    const fromData = getFieldsValue();
    if (fromData.username === URL.acount && fromData.password === URL.password)   //判断账号密码是否匹配
    {
        let millisecond = new Date().getTime();
        let cookieTime = new Date(millisecond + 30 * 60 * 1000); //设置过期时间 30min
        cookie.save("userInfo", URL.acount, {expires: cookieTime}); //保存cookie
          history.push("/");
    } else {
      message.error('密码错误');
    }
  };
  loginOut = () => {
      cookie.remove('userInfo');
      history.push("/login");
  }

//其他页面
  componentDidMount() {
    let time = cookie.load('userInfo')
    if (time === undefined) {
      history.push("/login");
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值