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 ...
随机推荐
- 队列ADT
队列 队列是FIFO表,使用队列时在队尾(rear)插入元素,称之为入队(enqueue),以及在对头(front)删除并返回元素值,称之为出队(dequeue). 任何表的实现都可以用于实现队列结构 ...
- 让sublime可以和visual studio一样自动在运算符前后添加空格的插件
用过vs的人都知道,vs会自动在代码中运算符的前后加空格,比如 i=1; 换行后会自动变成i = 1; 开始觉得这个挺烦的,后来习惯了,发现这个功能还是挺好的,然代码更清晰. 最近换了sublimet ...
- 通用订单搜索的API设计得失录
先把 Joshua Bloch 大神的 API PDF 放在这里膜拜下:"How to Design a Good API and Why it Matters.pdf" 总述 在 ...
- js获取本月最后一天
function getLastDay() { var seperator1 = "-"; var date=new Date; var new_mo ...
- iOS项目之交换方法(runtime)
在项目中,经常会遇到系统自带的方法满足不了自己的需求,往往我们解决这种情况的时候,都是在分类中添加一个方法.然而很多时候,项目已经开发很长时间了,如果一个一个的去替换系统的方法,太浪费宝贵的时间,所以 ...
- 【题解】Luogu P2766 最长不下降子序列问题
原题传送门 实际还是比较套路的建图 先暴力dp一下反正数据很小 第一小问的答案即珂以求出数列的最长不下降子序列的长度s 考虑第二问如何做: 将每个点拆点 从前向后连一条流量为1的边 如果以它为终点的最 ...
- Windows下用python来获取微信撤回消息
转自:https://blog.csdn.net/sunzhibin1/article/details/83348304 娱乐(windows系统) 安装itchat itchat是一个开源的pyth ...
- StringUtils工具类常用方法汇总(截取、去除空白、包含、查询索引)
一.截取 StringUtils中常用的截取字符串的方法如下: substring(String str,int start) substring(String str,int start, in ...
- 在 mac iTerm2 中使用 cmd 终端
在 mac iTerm2 中使用 cmd 终端 主要是因为要在 window 中做一些命令行上的工作, 但又不想切换到整个 window 系统里面去. 在程序和功能中开启 telnet 在服务中启用 ...
- 4、zabbix基本配置入门
Zabbix监控流程: Host group --> Hosts(向server端添加被监控主机) --> Application(在agent定义) --> Items(在appl ...