ajax获取数据用弹窗显示_Vue之 点击返回弹出推荐商品弹窗

08de1a212d54776decab7ab05da16f5d.png阅读本文约需要5分钟

大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。上次老师跟大家分享了VUE 之 v-on指令的知识,今天跟大家分享下Vue之 点击返回弹出推荐商品弹窗的知识。

1 需求场景非推荐商品详情页返回的时候弹出弹窗推荐商品,点击弹窗按钮可以直接访问推荐商品;只有直接进入商品详情页返回才会弹出推荐商品弹窗;每个用户访问只能弹一次(除非清除缓存)。2 需求分析1. 判断是否直接进入商品详情页可以在商品详情页直接判断 history.length ,如果是则 history.length=2 ;2. 每个用户只能弹一次可以保存一个标志值 hasBeenRecommended=true 到缓存中,有了这个标志值就不再弹出;3. 返回的监控,还是要监听页面的popstate,如果要阻止原来的返回操作的话,就要给页面栈添加一个空栈: 
history.pushState(null, null, document.URL);
3 实例代码1. vue框架内页面初始化时判断是否需要推荐弹窗:
......//修改历史记录状态,需要放在商品数据初始化之后if(history.length<=2 && !localStorage.getItem("hasBeenRecommended")) {    //获取推荐数据信息,页面返回标识修改及页面栈加入空栈操作在判断非当前页面之后再进行                                        this.getRecommendGoodInfo();}......
注:本例需要调用后端接口动态配置,可以在获取商品详情数据之后进行,也可以在页面初始化时查询商品详情时异步进行,这个影响不大,尽量不要在返回监听的逻辑中处理,如果推荐商品数据需要调用后端接口的话,还是放在页面初始化时处理比较好。2. 获取推荐商品详情信息:   
/**             * 获取推荐权益卡信息数据     */        getRecommendGoodInfo: function() {            var self = this            self.$ajax({                method: 'post',                url: self.$utils.DOMIN + 'goods/getAdvert',            }).then((response) => {                var data = response.data.d                if(data && data.goodsId != self.$route.query.goodsId) {                    //给页面添加空的页面栈,同时给推荐弹窗填充数据                    history.pushState(null, null, document.URL);                    //保存阻断返回的标志到缓存中            localStorage.setItem('stopBack',true);                    //填充弹窗元素数据源                    self.recommendGoodInfo = data                }            }).catch(function(error) {                console.log(error);            });        }
注:给页面添加空的页面栈的同时保存一个标志值到缓存中,那么在返回的时候如果有这个值就弹出弹窗,同时将这个值进行重置或清除。3. 返回监控,在vue框架外围处理:
 /**     * 返回监控,若缓存中返回标识为666,则弹出推荐权益卡弹窗,同时缓存中保存已经弹出推荐弹窗的标识     */    window.addEventListener("popstate", () => {        if(localStorage.getItem("stopBack")) {      //使用jquery或原生js的方式是弹窗显示            $(".showRecommendModal").fadeIn()        localStorage.removeItem('stopBack')            localStorage.setItem("hasBeenRecommended", true)        }    })
注:监听浏览器的返回本身就会破坏掉vue的路由,所以这个操作只能在vue框架外围来进行。如此,弹窗的数据是在vue框架中填充的,弹窗的显示是在原生js的返回监控中处理的。后记:整体来说,感觉上边的这种方案还是比较好的,当然如果喜欢原生js的话,也可以在vue框架中将推荐商品数据保存到缓存中,然后在返回监控的逻辑中以操作DOM的方式将弹窗追加到html结构中去,不过个人是不喜欢操作DOM的。
参考:https://www.cnblogs.com/xyyt/p/10517187.html
今天就分享这么多,VUE 之 点击返回弹出推荐商品弹窗,学会了多少欢迎在留言区评论,对于有价值的留言,我们都会一一回复的。如果觉得文章对你有一丢丢帮助,请点右下角【在看】,让更多人看到该文章。00196357297dfcf5696d22ee5665d0a3.png

5be77b8b77e1ee661d358ea2e6c9dedf.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat 编辑器自动完成代码功能讲解

2019独角兽企业重金招聘Python工程师标准>>> Navicat 提供广泛的编辑器高级功能&#xff0c;例如&#xff1a;编辑代码功能、智能自动完成代码、设置 SQL 格式及更多。本教程将介绍关于自动完成代码的操作。 Navicat下载地址&#xff1a;http://www.formysql.com/xi…

com 组件调用不起来_AwesomeGithub组件化探索之旅

阅读前请点击右上角“关注”&#xff0c;每天免费获取Android知识解析及面试解答。Android架构解析&#xff0c;只做职场干货&#xff0c;完全免费分享&#xff01;之前一直听说过组件化开发&#xff0c;而且面试也有这方面的提问&#xff0c;但都未曾有涉及具体的项目。所以就…

将团队迁移到可视化项目管理软件

自2000年代中期&#xff0c;“Scrum”项目管理&#xff08;PM&#xff09;一直统治着软件开发方法。它的迭代结构、频繁会议和清晰的层次结构使其成为受频繁变化的客户需求和条件管制的行业的明显选择。因此&#xff0c;大多数团队习惯基于 Scrum项目管理应用管理开发过程。 \\…

一步一步学Silverlight 2系列(3):界面布局_转载

概述 Silverlight 2 Beta 1版本发布了&#xff0c;无论从Runtime还是Tools都给我们带来了很多的惊喜&#xff0c;如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython&#xff0c;对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlig…

b树与b+树的区别_一文详解 B-树,B+树,B*树

B-树B-树是一种多路搜索树&#xff08;并不一定是二叉的&#xff09;1970年&#xff0c;R.Bayer和E.mccreight提出了一种适用于外查找的树&#xff0c;它是一种平衡的多叉树&#xff0c;称为B树&#xff08;或B-树、B_树&#xff09;。一棵m阶B树(balanced tree of order m)是一…

提交按钮禁用的办法

1.html: οnclick"this.value正在打印&#xff0c;请稍候;this.disabled true;" <input id"Button2" type"button" value"打印测试" οnclick"this.disabled true;" /> 效果如下&#xff1a; 2.如果是ASP.NET的服务…

share-Nothing原理

Share nothing理论在数据库设计和优化中的实践应用 首先介绍share nothing概念。最早接触它是在 DataBaseManagentSystem一书的并行数据库章节中。 并行数据库要求尽可能的去并行执行数据库操作&#xff0c;从而提高性能。在并行计算体系结构实现中有很多可选的体系结构。包括&…

返回对应对象的克隆方法

代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Collections;usingSystem.Reflection;namespaceCommon.CloneObjBase{ ///<summary>///BaseObject类是一个用来继承的抽象类。 ///每一个由此类继承而来的类将自动支持克隆方法…

linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...

市场上有很多用来监控 Linux 系统的监控工具&#xff0c;当系统到达阀值后它将发送一封邮件。它监控所有的东西例如 CPU 利用率、内存利用率、交换空间利用率、磁盘空间利用率等等。然而&#xff0c;它更适合小环境和大环境。想一想如果你只有少量系统&#xff0c;那么什么是最…

markdown 语法_Markdown 基本语法

Markdown 是一种轻量级的标记语言&#xff08;markup language&#xff09;&#xff0c;由 John Gruber&#xff08;1973 ~&#xff09;与 Aaron Swartz &#xff08;1986 ~ 2013&#xff09;于2004年创造&#xff0c;被网站用于编写说明文件&#xff08;readme&#xff09;、技…

原来fb可以在一个工程里面输出多个swf模块

转载于:https://www.cnblogs.com/wonderKK/archive/2013/01/23/2873555.html

MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...

文章出处&#xff1a;http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描&#xff0c;主键索引(聚集索引、第一索引)&#xff0c;非主键索引(非聚集索引、第二索引)&#xff0c;覆盖索引四种不同查询的分析 1.前置条件&#xff1a; 本次是基于小数据量&#xff0c;且数据块…

python异常处理的语法格式_Python异常处理

Python异常处理 一. 异常的概念 程序在运行时&#xff0c;如果 Python 解释器 遇到 到一个错误&#xff0c;会停止程序的执行&#xff0c;并且提示一些错误信息&#xff0c;这就是 异常。 程序停止执行并且提示错误信息 这个动作&#xff0c;我们通常称之为&#xff1a;抛出(ra…

从零开始山寨Caffe·零:必先利其器

工作环境 巧妇有了米炊 众所周知&#xff0c;Caffe是在Linux下写的&#xff0c;所以长久以来&#xff0c;大家都认为跑Caffe&#xff0c;先装Linux。 niuzhiheng大神发起了caffe-windows项目&#xff08;解决了一些编译、API相异问题&#xff09; 以及willyd大神发起的caffe-wi…

python单例_Python - 单例模式(Singleton)

单例模式(Singleton) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/23374575 单例模式 , 类的实例从始至终, 只 被创建一次 , 这些类可以用来管理一些资源; 需要 继承Object类 , 才可以使用类的方法 super() , 只实例化一次; 参见Python文档: Note super() …

Linux抓eth0网卡包的命令,Linux系统使用tcpdump命令抓包

前提条件&#xff1a;1. 一台安装有Linux的机器….这个是必要的&#xff1b;2. Tcpdump程序;3. 以下所有均是root用户登录操作&#xff0c;且命令不支持直接复制到Linux控制台&#xff0c;请手工输入&#xff01;4.工具以及教程文档下载地址 点我操作步骤&#xff1a…

common-collections中Java反序列化漏洞导致的RCE原理分析

2019独角兽企业重金招聘Python工程师标准>>> common-collections中Java反序列化漏洞导致的RCE原理分析 隐形人真忙 2015/11/11 22:40 0x00 背景 这几天在zone看到了有人提及了有关于common-collections包的RCE漏洞&#xff0c;并且http://zone.wooyun.org/content/…

linux nfs 配置_centos7 NFS 配置

NFS是什么最近项目上有这么个需求&#xff0c;客户端上传文件的时候&#xff0c;想把文件上传到另外一台服务器。本来想用ftp的&#xff0c;觉得太麻烦&#xff0c;就各种查资料&#xff0c;请教别人&#xff0c;后来发现&#xff0c;NFS这个东东真不错。NFS(网络文件系统)服务…

Windows Server 2003 导入Java生成的证书,保证iis对CAS的访问

开始 -- 运行-- mmc 打开了一个控制台程序 菜单 --> 文件 --> 添加/删除管理单元 (Ctrl M) 打开界面: 点击 "添加" 按钮,打开界面后选择 "证书",继续点此界面的添加,完成添加证书管理的操作 中间需要选择账户,我就选择的是 我的用户账户, 也可…

命令点亮硬盘灯_macOS下移动硬盘无法挂载且硬盘灯一直闪烁的解决方法

致力于成为您终身的苹果管家点击上方蓝字 关注我们小编近日遇到一个诡异的问题&#xff0c;小编的移动硬盘不定期的会自动断开&#xff0c;提示未正常拔出&#xff0c;实际上一直没有动过连接线&#xff0c;然后硬盘一直处于未加载的状态&#xff0c;硬盘灯也一直闪烁不停。通…