- 为什么切换路由不刷新页面
vue-router 的切换不同于传统的页面的切换。路由之间的切换,其实就是组件之间的切换,不是真正的页面切换。这里的 hash 就是指 url 尾巴后的 # 号以及后面的字符。这里的 # 和 css 里的 # 是一个意思。hash 也 称作 锚点,本身是用来做页面定位的,她可以使对应 id 的元素显示在可视区域内。hash 值变化不会导致浏览器向服务器发出请求。
解决办法是:1.给<router-view :key="key"></router-view>增加一个不同:key值,这样vue就会识别这是不同的<router-view>了。2.给<router-view v-if="routerAlive"></router-view>增加一个不同v-if值,来先摧毁<router-link>,然后再重新创建<router-link>起到刷新页面的效果。
- 什么是单页面应用
单页面应用(SinglePage Web Application,SPA)
只有一张Web页面的应用,是一种从Web服务器加载的富客户端,单页面跳转仅刷新局部资源 ,公共资源(js、css等)仅需加载一次,常用于PC端官网、购物等网站。
多页面应用(MultiPage Application,MPA)
多页面跳转刷新所有资源,每个公共资源(js、css等)需选择性重新加载,常用于 app 或 客户端等
- vue-router中hash模式和history模式配置?
- vue使用路由跳转实现方式
一、不传参
声明式:<router-link :to="{name:'index'}}"> 或者 <router-link to='/index'>
编程式:router.push(...)
方法一: this.$router.push({path:'路径')}
方法二:this.$router.push({name:'组件名')}
二、传参
声明式:<router-link :to="{name:'index',query:{id:'xxx',name:'xxx'}}">
编程式:router.push(...)
方法一:this.$router.push({path:'xxx',query:{aa:xx, bb: xx}})
; //带查询参数,类似于 “?” 的形式传值
方法二:this.$router.push({path:'xxx',params:{aa:xx, bb: xx}})
;
取值:this.$route.query.xx
- Vue 和 React 和 Angular 对比
- 组件之间传值
网友评论