当前位置: 首页 > news >正文

asp系统网站怎么做优化flash可以做网站

asp系统网站怎么做优化,flash可以做网站,建设投资公司网站,网站使用的主色调在 react umi 中对离开页面的行为进行自定义弹窗拦截控制。以下为可选的方案分析。 wrapper 首先,因为项目框架是 umi,最先想到了 umi 路由的 wrapper 装饰器,但仔细一想又不太对, wrapper 争对于跳转到某个特定页面的前置行为…

在 react + umi 中对离开页面的行为进行自定义弹窗拦截控制。以下为可选的方案分析。

wrapper

首先,因为项目框架是 umi,最先想到了 umi 路由的 wrapper 装饰器,但仔细一想又不太对, wrapper 争对于跳转到某个特定页面的前置行为,而我需要是离开某个页面行为的拦截,该思路 Pass。

beforeunload

其次,想到的是原生的 windows 事件:beforeunload

useEffect(()=> {  window.addEventListener('beforeunload', (event: BeforeUnloadEvent) => {  event.preventDefault();  event.returnValue = "";  })  
}, [])

不过这样做,只能拦截到刷新行为,同时还是浏览器默认的那个巨丑的弹框,Pass。

history.block

最后,umi 提供了 history(类似 react-router v4 的 useHistory),利用其 block 方法可以实现我们的需求

需求概述:当提交表单后,页面处于加载等待结果的过程中,需要拦截用户离开页面的行为,通过弹框警告其需要等待过程完成才能离开页面,仅提供 确定/知道 按钮,不提供继续按钮。

思路:通过 history.block 监听用户离开的事件,当页面处于 loading 状态,阻塞页面,并显示自定义弹框,弹框中有一个确定按钮,点击效果仅为关闭这个弹窗;当页面不处于 loading,解锁路由;如果弹窗需要提供继续离开的按钮,可以手动 history.push(next) 到之前触发 block 时获取到的下一个路由(next),伪代码:

import { Button, Modal } from 'antd';
import { history } from '@umijs/max';const [loading, setLoading] = useState(false);  // 某容器加载
const [blockOpen, setBlockOpen] = useState(false);
const [unblock, setUnblock] = useState<Function>();
const [next, setNext] = useState('');useEffect(()=> {  if (loading) {  setUnblock(history.block(({location})=> {  setNext(location.pathname);setBlockOpen(true);return false;  }))} else {unblock?.(); 
}, [loading, unblock])const Leave = () => <Button onClick={() => {unblock?.();if (next) {history.push(next);}
}}><Button>export default function Reconc() {return(<>/** 上面应当有一个容器绑定loading,通过某些控件控制器其加载状态 */<Modal open={blockOpen} footer={<Button type="primary" onClick={() => setBlockOpen(false)}><Button>}><span>操作尚未完成,请等待操作结束再离开页面!<span></Modal></>)
}

基本实现方案就是这样,Bingo!

http://www.yayakq.cn/news/849871/

相关文章:

  • wordpress 搞笑网站电子商务网页设计试题
  • 学校网站样式织梦 视频网站源码
  • 北京建站沈阳网站关键词
  • 官方网站下载派的app美术类网站建设费用
  • 浙江大成建设集团有限公司网站网站设计背景图片
  • 国外美容院网站网站建设怎么学习
  • 新乡网站建设策划备案中的网站
  • wordpress更改站点地址wordpress固定连接跳转
  • 网站定制扬州网站建设公元国际
  • 关于网站建设培训哪里找做网站的
  • 做设计那个素材网站最好网页怎么截图
  • 微信公众号私自建设电影网站企业查询天眼查在线查
  • 广州市手机网站建设深圳营销型网站建设-龙华信科
  • 做玉的网站wordpress注册直接显示密码
  • 可信赖的昆明网站建设手机开发网站开发
  • 大专学网站开发网站打开慢的解决方法
  • sns网站社区需求分析文档怎么创建企业邮箱
  • logo设计商标设计关键词排名优化官网
  • 做图片的网站网店管家erp
  • 百度云盘网站开发wordpress的安全错误
  • 物流网站毕业设计论文招聘类网站如何做
  • 做一个网站的步骤站牛网是做什么的
  • 做网站后台系统的规范抚顺少儿编程哪家好
  • 柳城企业网站建设公司江西省赣州市崇义县
  • 做财经比较好的网站有哪些河北建筑培训网官网
  • 江苏建设网站酒店装修合同范本小程序电商系统开发
  • 集团门户网站建设企业a963设计网作品
  • 推广网站可以做跳转吗响应式网站要多久
  • 网站设计的公司概况简介小程序推广平台
  • 一般建设网站的常见问题wordpress多形式