在进入详情页之后,然后返回到首页,报错如下。

   虽说是报错了,但是对我最后的页面并没有什么影响,但是出现了一堆红色的报错,作为一个前端工程师,看着还是十分难受的!!

一旦出现问题,我的解决思路一般是,查看错误,这里的错误几乎是无法查看的,提示非常不明确,所以第二部工作就是在指定的DetailPage页面逐个删除可能会出错的地方,然后再测试,这样的好处是可以逐步缩小出错的范围,结果发现,这些都没有用!没有用! 于是,我还能想到的就是路由以及从首页router-link的代码,这里是router-link通过query传递参数到DetailPage来接收, 在router-link中的配置如下:

   {
path:"/DetailPage",
component: DetailPage,
name: "详情页",
meta: {keepAlive: true}
},

  在检查了path和component没有注册出错之后,我接着就去掉了 keepAlive: true 选项,即不再缓存,这时候,确实就成功了! 即不再报错。

  如果我不把meta去除,而是将keepAlive的值修改为false,那么可以发现也不会报错! 也不会报错啊! 

  于是我大胆的推测: 对于通过参数传递到的页面,它是不可缓存的!  必须要是用 keepAlive: false 的形式。 

  为了验证这个想法,我又找到了另外一个页面编辑地址页,同样也可以通过 this.$route.query 接收参数的 , 是从地址管理页传递过来的,router-link如下:

                <router-link :to="{path: '/commodity/payment/editAddress', query: {
id: item.id,
name: item.name,
contact: item.contact,
address: item.address
}}">
<span class="edit">编辑</span>
</router-link>

  可以推测: 如果我把 editAddress 的keepAlive值设置为true,那么也会出现类似报错问题,于是设置之后,我尝试发现:并没有报错!并没有报错啊! 

  所以这个推测是有问题的! 那么还有什么可能导致DetailPage.vue页面的 keep-alive 出错呢? 希望后面可以解决这个问题!

  至少这里可以解决报错问题还是不错的!

  如果触发了使用 keep-alive, 那么就缺少了 created 的过程,我们可以通过 activated 钩子函数来替代生命周期的钩子函数。

  并且使用keep-alive的好处是,不仅对于主要的组件会触发 activated 钩子函数, 而对于其中包含的组件也会触发钩子函数, 这一点是非常棒的。

vue中遇到的坑keep-alive、vue-router相关的更多相关文章

  1. vue中遇到的坑 --- 变化检测问题(数组相关)

    最近在项目中遇到了一个问题,不知道为什么,所以最后通过动手做demo实践.查文档的方式解决了,这里做一个总结. 例1 <!DOCTYPE html> <html lang=" ...

  2. vue中遇到的坑!!!!!

    一 .vue安装的坑 报错时的常见问题 1.cnpm install 模块名 –save-dev(关于环境的,表现为npm run dev 启动不了)cnpm install 模块名 –save(关于 ...

  3. vue中的css作用域、vue中的scoped坑点

    一.css作用域 之前一直很困扰css的作用域问题,即使是模块化编程下,在对应的模块的js中import css进来,这个css仍然是全局的.导致在css中需要加上对应模块的html的id/class ...

  4. vue中遇到的坑

    如何解决在vue中替换图片.一个使用base64,而我们使用zepto之后,src找不到资源,因为已经打包了,难道强行写base64. 1. 引入文件时语法很重要! import "Foot ...

  5. 025——VUE中事件的基本使用与VUE中差异

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Django day 33 vue中使用element-ui的使用,课程的相关介绍,vue绑定图片,课程列表接口,课程详情页面

    一:vue中使用element-ui的使用, 二:课程的相关介绍, 三:vue绑定图片, 四:课程列表接口, 五:课程详情页面

  7. vue中的js引入图片,使用require相关问题

    vue中的js引入图片,必须require进来 或者引用网络地址 <template> <div class="home"> <img alt=&qu ...

  8. [ vue ] quasar框架踩坑:在vue文件外导入路由,执行router.push('/')没有效果

    问题描述: 1. 如图所示的项目结构目录, axios.js 文件负责拦截全局请求和回复,我在拦截回复的代码中写了:如果服务器回复了一个401错误,则执行Router.push('/'),但是该方法失 ...

  9. 049——VUE中使用animation与transform实现vue的动画效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. C++11中的to_string

    C++11之前,标准库没有提供数字类型转字符串的函数,需要借助sprintf.stringstream等,现在C++11提供了std::to_string函数,可以直接使用了: 点击(此处)折叠或打开 ...

  2. ACM 超级楼梯 发工资

    超级楼梯 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M( ...

  3. 20160214 2016-2017-2 实验二《Java面向对象》实验报告

    实验二 面向对象程序设计 (一)单元测试 写一段关于分数标准的代码,如下: public class MyUtil{ public static String percentage2fivegrade ...

  4. .net 任务(Task)

    1. Task (任务): 很容易调用 ThreadPool.QueueUserWorkItem 实现异步操作,但是这个技术有许多 .net 引入Task类型来使用任务. 如下几种方式都是实现异步的方 ...

  5. [转载].NET Web开发技术(补充)

    大家在工作应该养成善于总结的习惯,总结你所学习.使用的技术,总结你所工作事项的比较好的地方,善于总结不断的沉淀优化自己.适时停下来总结下过去走过的路,才能让我们的未来走的更坚定.文章转自JamesLi ...

  6. 转载:RabbitMQ常用命令

    RabbitMQ常用命令 RabbitMQ常用命令 rabbitmqctl命令http://www.rabbitmq.com/man/rabbitmqctl.1.man.html# 1). 服务器启动 ...

  7. win7 下 vim字体默认设置

    set guifont=Consolas 在_vimrc开头第一行写上就行了

  8. “全栈2019”Java第七十七章:抽象内部类与抽象静态内部类详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. 5104 I-country

    5104 I-country 在 N*M 的矩阵中,每个格子有一个权值,要求寻找一个包含 K 个格子的凸连通块(连通块中间没有空缺,并且轮廓是凸的,如书中图片所示),使这个连通块中的格子的权值和最大. ...

  10. XMPP使用tls 和sasl登录

    转自:http://ycool.com/post/xc98m5k 名词解释 TLS:安全传输层协议 TLS:Transport Layer Security 名词: 安全传输层协议(TLS)用于在两个 ...