使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。
注意:这个功能只在支持 history.pushState 的浏览器中可用。
路由设置如下:(详情猛戳:https://router.vuejs.org/zh-cn/advanced/scroll-behavior.html)
const router = new VueRouter({
mode: 'history',
scrollBehavior (to, from, savedPosition) {
if (savedPosition) { //如果savedPosition存在,滚动条会自动跳到记录的值的地方
return savedPosition
} else {
return { x: 0, y: 0 }//savedPosition也是一个记录x轴和y轴位置的对象
}
},
routes: [...] })5. 实现vue路由拦截浏览器的需求,进行一系列操作,如草稿保存等等
场景:为了防止用户失误点错关闭按钮等等,导致没有保存已输入的信息(关键信息)。
用法:
if(用户已经输入信息){
//出现弹窗提醒保存草稿,或者自动后台为其保存 }else{
next(true);//用户离开
}
}
还有beforeEach、beforeRouteUpdate这些生命周期函数。 详情猛戳:https://router.vuejs.org/zh-cn/advanced/navigation-guards.html
6.v-once 只渲染元素和组件一次,优化更新渲染性能
v-once 这个指令相信大家用的很少,不过个人感觉还是挺实用的!
只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。
这个就不举例子了,直接猛戳这:v-once(https://cn.vuejs.org/v2/api/#v-once)
7. vue本地代理配置 解决跨域问题,仅限于开发环境
这个本地代理用来解决开发环境下的跨域问题,跨域可谓老生常谈的问题了,proxy 在 vue 中配置代理非常简单:
//比方说你要访问 http://192.168.1.xxx:8888/backEnd/paper这个接口
//配置 config.js下面proxyTable对象
proxyTable: {
'/backEnd':{
target:'http://192.168.3.200:8888', //目标接口域名有端口可以把端口也写上
//或者prot本地起服务端口与服务端统一
changeOrigin:true,
}
},
// 发送request请求
axios.get('/backEnd/page') //按代理配置 匹配到/backEnd就代理到目标target地址
.then((res) => {
console.log(res) // 数据完全拿得到 配置成功
this.newsList = res.data
}, (err) => {
console.log(err)
})8. 本地开发没有任何问题,部署服务器就404啊这些问题










