vue项目页面切换到默认显示顶部
页面切换到默认显示顶部
方法一
使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。
vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。
在路由配置中使用scrollBehavior
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
}
如下例子, 使得每次进入页面都在页面顶部。
import Vue from 'vue'
import Router from 'vue-router'
import {wechatAuth,wechatOauth} from '@/utils/auth.js'
import store from '@/store' Vue.use(Router) const routes = {
mode: 'hash',
routes: [
{ path: '/', redirect: '/introduce' },
{
path: '/introduce',
name:'introduce',
component: () => import('@/pages/introduce')
},
{
path: '/register',
component: () => import('@/pages/register')
},
/* {
path: '/auth',
component: () => import('@/pages/auth')
}, */
{
path: '/businessCard',
component: () => import('@/pages/businessCard')
},
{
path: '/category',
component: () => import('@/pages/category')
},
{
path: '/index',
name:'index',
component: () => import('@/pages/index')
},
{
path: '/orderList',
name:'orderList',
component: () => import('@/pages/orderList')
},
{
path: '/orderDetail',
name:'orderDetail',
component: () => import('@/pages/orderDetail')
},
{
path: '/acceptOrder',
name:'acceptOrder',
component: () => import('@/pages/acceptOrder')
},
{
path: '/feedBackDetail',
name:'feedBackDetail',
component: () => import('@/pages/feedBackDetail')
},
],
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
}
} const route = new Router(
routes
) route.beforeEach((to, from, next) => { //获取当前页面链接进入路由签名
let link = route.resolve({
path: window.location.href
}) //判断有没有code
if(link.href.includes('/?code')){ let {code} = link.route.query
let uri = to.fullPath
wechatOauth(code,uri) }else{ //没有code再进入判断有没有用户资料
if(store.state.userInfo.userId === null){ //用户数据初始化请求
store.dispatch('getUserData').then(res => {
//这里是已授权
//已授权进入正常的判断跳转流程 //获取用户id及绑定手机号码
let {userId,regTel} = res if(userId == -1){
//判断用户是否关注了公众号
next('/introduce')
}else{
//判断有没有绑定手机号码
if(regTel == ''){
next('/register')
}else{
//这里是请求到用户资料进入的正常流程
next()
}
} }).catch(err => {
//这里是未授权
//未授权就请求微信接口进行授权
wechatAuth(to.fullPath)
})
}else{
//这里是没有问题进入的正常流程
next()
}
}
}) export default route
方法二:vue里面写法如下,至于updated生命周期里面
updated() {
window.scroll(0, 0);
}
方法三:router拦截控制
//路由跳转后,页面回到顶部
router.afterEach(() => {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
})
https://www.cnblogs.com/sophie_wang/p/7880261.html
https://blog.csdn.net/u013144287/article/details/78985551
https://blog.csdn.net/csl125/article/details/83996314
vue项目页面切换到默认显示顶部的更多相关文章
- vue项目页面空白
vue项目页面空白 今天新建项目,然后发现路由也改了 app.vue里面也是啥都没有, 但是访问http://localhost:8080/#/login 能访问 里面确实空白的 错误: 错误原因: ...
- Vue项目页面跳转时候的,浏览器窗口上方的进度条显示
1.安装: cnpm install --save nprogress 2.在main.js中引入: import NProgress from 'nprogress' import 'nprogre ...
- 97、进入ScrollView根布局页面,直接跳到页面底部,不能显示顶部内容
API使用:http://www.cnblogs.com/over140/archive/2011/01/27/1945964.html 以ScrollView为根的部局,不能从顶部显示其包含的页面内 ...
- 基于Vue的页面切换左右滑动效果
HTML文本页面: <template> <div id="app> <transition :name="direction" mode= ...
- Vue 动态控制页面中按钮是否显示和样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue 项目路由跳转后显示不同的title
1.在router/index.js的每个路由中配置title 2.在项目中运行命令 npm install vue-wechat-title --save 安装插件(在 package.json文件 ...
- IIS部署vue项目页面刷新404,url重写问题解决办法
这里需要用到URL重写工具 --URL Rewrite(默认没有,需要自己下载安装) 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开IIS在管理 ...
- 【Vue中的坑】vue项目中动态绑定src不显示图片解决方法
v-for绑定src的数据如下: data() { return { img_src:"../../assets/images/mirror-service.png" } } 渲染 ...
- vue项目build后font-awesome不显示问题
解决办法: 修改build目录下的utils.js:添加 publicPath: '../../' // Extract CSS when that option is specified // (w ...
随机推荐
- Vue学习系列(三)——基本指令
前言 在上一篇中,我们已经对组件有了更加进一步的认识,从组件的创建构造器到组件的组成,进而到组件的使用,.从组件的基本使用.组件属性,以及自定义事件实现父子通讯和巧妙运用插槽slot分发内容,进一步的 ...
- 基于docker的mysql8的主从复制
基于docker的mysql8的主从复制 创建mysql的docker镜像 构建docker镜像,其中数据卷配置内容在下面,结构目录如下 version: '3.7' services: db: # ...
- axios reponse请求拦截以及token过期跳转问题
前两天项目中遇到了token拦截,需要在请求的header头里放置token,需要用到response拦截,调试过程中遇到了拿不到token的问题 我用的axios实例 let token = sto ...
- java面试官:兄弟简单谈谈Static、final、Static final各种用法吧
前言 对Static.final.Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从 ...
- ES常用操作备忘
格式:<REST Verb>/<Index>/<Type>/<ID> 集群健康:curl -u lases:1fw@2soc#3vpn -XGET 'l ...
- Mysql数据库(九)备份与恢复
一.数据备份 1.使用mysqldmp命令备份 (1)备份一个数据库 mysqldump -u root -p dbname table1 table2 ... > D:\BackName.sq ...
- WWW网络请求
采用WWW获取网络数据: (一)get 1)天气数据下载 private string weatherApi = "http://www.sojson.com/open/api/weathe ...
- Python网络爬虫之cookie处理、验证码识别、代理ip、基于线程池的数据爬去
本文概要 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时, ...
- Flink中接收端反压以及Credit机制 (源码分析)
先上一张图整体了解Flink中的反压 可以看到每个task都会有自己对应的IG(inputgate)对接上游发送过来的数据和RS(resultPatation)对接往下游发送数据, 整个反压机制通 ...
- C标准库stdlib.h概况
库变量 size_t 这是无符号整数类型,它是 sizeof 关键字的结果 wchar_t 这是一个宽字符常量大小的整数类型. div_t 这是 div 函数返回的结构 ldiv_t 这是 l ...