Vue解决同一页面跳转页面不更新
问题分析:路由之间的切换,其实就是组件之间的切换,不是真正的页面切换。这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新。
方案一:使用 watch 进行监听
watch: {
/* ==== 解决详情页Url变化内容不更新问题 ==== */
$route (to, from) {
// 获取路由参数
this.articleId = from.params.articleId
// 从新初始化组件数据
this._initData()
}
}
注意:这里有个问题,$router 是全局性的,即使添加在组件里面,使用此方法要添加判断
watch: {
/* ==== 解决详情页Url变化内容不更新问题 ==== */
$route (to, from) {
// 判断是否为当前需求页面
if (to.fullPath.indexOf('/articles-details') !== -1) {
// 获取路由参数
this.articleId = from.params.articleId
// 从新初始化组件数据
this._initData()
}
}
}
方案二:router-view组件增加不同的 key值
<template>
<div id="AppFG" @touchmove.prevent>
<!--
<transition name="router-fade" mode="out-in">
</transition>
-->
<!--
<router-view :key="key" />增加一个不同:key值,这样vue就会识别这是不同的<router-view />
-->
<keep-alive>
<router-view :key="key"/>
</keep-alive>
</div>
</template> <script>
export default {
name: 'App',
computed: {
key () {
return this.$route.path + Math.random()
}
}
}
</script>
方案三:销毁 router-link 组件,重新生成
<template>
<div id="AppFG" @touchmove.prevent>
<!--
<transition name="router-fade" mode="out-in">
</transition>
-->
<!--
<router-view v-if="routerAlive" />增加一个不同v-if值,来先摧毁<router-link />,然后再重新创建<router-link />起到刷新页面的效果。
-->
<keep-alive>
<router-view v-if="routerAlive"/>
</keep-alive>
</div>
</template> <script>
export default {
name: 'App',
data () {
return {
routerAlive: true
}
},
methods: {
routerRefresh () {
this.routerAlive = false
this.$nextTick(() => {
this.routerAlive = true
})
}
}
}
</script>
Vue解决同一页面跳转页面不更新的更多相关文章
- Vue路由守卫(跳转页面置顶的处理方)
在用Vue 框架开发时,在电脑调试没有任何问题,但是用手机调试时会发现页面跳转的不对.就是跳转时页面展示的滑动位置不对,会保留上次跳转页面时的跳转位置.因此需要对页面的路由跳转进行优化,需要用到Vue ...
- Chrome开发者工具应对页面跳转页面点击事件等实用干货
1.如何解决页面跳转 打开Preserve log即可 禁用页面缓存在右边的disable cache 2.如何监听页面点击 重要的是举一反三,看不懂英文去翻译!Mouse鼠标,click点击,,,, ...
- sharePoint中简单的父页面跳转子页面代码!
1,SharePoint中挺简单的一个父页面跳转到子页面的Js代码!常常用到,每次都到以前的项目中去找代码,挺麻烦! (1)父页面代码. function imgAddParentclick() { ...
- Web端 页面跳转 页面传值
要把 Default.aspx 页面 TextBox1中的值 传值到 Default.aspx Label上去 C#服务端跳转页面 Response 响应请求对象 Redi ...
- vue点击tab跳转页面,给点击的tab添加样式,且解决刷新以后点击的tab样式消失问题
<ul class="nij"> <li v-for="item in nav" @click="selectNav(item.ti ...
- [HTML]js实现页面跳转,页面A跳到另一个页面B.以及页面传值(中文)
要实现从一个页面A跳到另一个页面B,js实现就在A的js代码加跳转代码 JS跳转大概有以下几种方式: 第一种:(跳转到b.html)<script language="javascri ...
- jsp页面跳转页面的几中方式(同步更新)
1. 通过<a>标签跳转网页a) 通过<a>标签直接跳转b) 通过<a>标签调用JavaScript函数,然后再进行跳转 2. 通过表单形式跳转网页a) 通过表单跳 ...
- href 页面跳转页面 参数
$.getUrlParam = function (name) { var reg = new RegExp("(^|&)" + name + "=([^& ...
- vue如何在路由跳转的时候更新组件
项目中在路由跳转的时候碰到一个问题,没有更新视图,如何解决呢: https://segmentfault.com/a/1190000008879966 http://www.tuicool.com/a ...
随机推荐
- Streaming从Spark2X迁移到Spark1.5 summary
配置文件的加载是一个难点,在local模式下非常容易,但是submit后一直报找不到文件,后来采用将properties文件放在加载类同一个package下,打包到同一个jar中解决. import ...
- 二叉查找树ADT
二叉查找树ADT 定义:是一个二叉树,其中每一个节点的值大于左子树的所有值而小于右子树的所有值 平衡二叉树:平衡是指一个二叉树的任何节点的深度均不得过深 AVL树 定义:是一个二叉查找树,每个节点的左 ...
- Java IO--BIO
一.java io 概述 1.1 相关概念 Java IO Java IO即Java 输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这 ...
- 聊聊return false
最近在做一些关于视频切换的时候.由于是用a标签做的会有默认的跳转.这时候我就想到了,return flase.阻止默认行为,也达到了预期的效果.后来就详细查了查.让我们来看看 “return fals ...
- IP通信基础学习第一周
在IP方向上,IP通信基础是学习其他诸如:数字程教控交换技术与应用.IPV6技术与应用.SDH传输技术与应用等课程的基础. 学习IP通信基础,对学生而言至少可以拿学分,不仅有利于以后的学习,还有机会从 ...
- Hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
Problem Description 急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品, ...
- js中获取当天的时间的年月日
var d=new Date() var day=d.getDate() var month=d.getMonth() + 1 var year=d.getFullYear() document.wr ...
- C# ToLookup
下文参考翻译自: C#/.NET Little Wonders: The ToLookup() LINQ Extension Method 故事的背景 让我们先来创建一个简单的类来表示产品,产品有ID ...
- com.opensymphony.xwork2.util.logging.jdk.JdkLogger info 错误
在启动Tomcat时出现了如下的错误: 警告: Could not create JarEntryRevision for [jar:file:/E:/Programming/apache-tomca ...
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题. 其实原因很简单,我们忽略了2个细节. ...