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 ...
随机推荐
- Maven Eclipse 笔记
1. 下载apache-maven-3.1.1-bin.zip SITE:http://maven.apache.org/download.cgi 2. 配置 M2_REPO= C:\Users\&l ...
- jquery链式原理.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [AI开发]零数学公式告诉你什么是(卷积)神经网络
大部分介绍神经网络的文章中概念性的东西太多,而且夹杂着很多数学公式,读起来让人头疼,尤其没什么基础的人完全get不到作者想要表达的思想.本篇文章尝试零公式(但有少量数学知识)说清楚什么是神经网络,并且 ...
- python str的一些操作及处理
一.str的定义:Python中凡是用引号引起来的数据可以称为字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串. 二.str的简单操作方法: conu ...
- (Java) byte[] 和 base64 字符串之间的转换
import org.apache.commons.codec.binary.Base64; public class UtilHelper { //base64字符串转byte[] public s ...
- linux IMX6 汇编点亮一个LED灯
驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...
- Nginx专题(1):Nginx之反向代理及配置
摘要:本文从Nginx的概念出发,分别从反向代理的概念.优势.配置代码3个方面介绍了Nginx的特性之一反向代理. 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第一期-宜信支付结算八方 ...
- Flask:第一个Flask项目
在上一篇文章:Flask:项目的准备工作中,我写了flask项目的准备工作,不清楚创建flask项目需要做哪些准备的朋友可以点击链接看看 1.最简单的Flask项目 代码: from flask im ...
- 使用Beautiful Soup
Beautiful Soup初了解 # 解析工具Beautiful Soup,借助网页的结构和属性等特性来解析网页(简单的说就是python的一个HTML或XML的解析库)# Beautiful So ...
- (二)golang--windows下vscode的安装以及go环境的配置
在官网上下载vscode对应的安装包,进行安装: 安装的时候记得勾选加入到path路径: 下载go语言的SDK:https://studygolang.com/dl目前最新版本是1.13.4,我就下这 ...