vue路由

vue单页路由跳转后scrollTop问题

半腔热情 提交于 2019-12-06 20:33:20
作为vue的初级使用者,在开发过程中遇到的坑太多了。在看页面的时候发现了页面滚动的问题,当一个页面滚动了,点击页面上的路由调到下一个页面时,跳转后的页面也是滚动的,滚动条并不是在页面的顶部。 最开始我使用了一个很笨的方法,每个页面上都加上window.scrollTop(0,0);来解决问题,但是这个太繁琐了。最后和小伙伴们商量了一下,在main.js页面上加了这么一段代码 router.afterEach(function (to) { window.scrollTo(0, 0) }) 路由跳转后就不会出现滚动的问题了。 但是这种做法是不友好的,我们可以使用 scrollBehavior (to , from , savedPosition) {}来解决问题。 在我们写路由的时候做个处理,如下 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router); Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: resolve => require(['../components/HelloWorld.vue'],resolve) } ],

「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)

馋奶兔 提交于 2019-12-06 14:31:23
大家好,在上一篇系列文章里,我们一起学习了路由的基本配置,如何创建路由和传参,本篇文章我们一起学习下 Navigation 导航和路由守卫的相关内容。 Navigation 如果要改变当前路径,我们可以使用 <router-link> 自带的组件和JS编码的两种方式进行实现。 一、 Links方式 尽管你可以使用标准的<a>标签功能进行实现,但是使用 <router-link> 功能有以下优点: 1、当URL与当前路由匹配时,能自动匹配定义的“active”样式(这个你需要在路由配置中进行自定义linkActiveClass属性) 2、会智能匹配路由为 hash 模式 还是 HTML5 history 模式,格式化成正确的URL格式。 3、当在 history 模式下,会阻止默认的单击操作行为,避免浏览器重新加载页面。 4、基于路由配置,构建相应的访问权限。 你可以像<a>标签一样进行使用,只是URL相当组件的属性值而已: URL除了可以写成字符串的形式,你还可以写成对象的形式: 虽然上面的两种写法是等价的,但是使用对象写法的形式,你能更方便的设置路由或URL传参: 1、Route parameters 2、Query parameters 二、JS编码的方式 如过你想通过JS的方式进行路由跳转,你可以在每个路由实例里,通过调用 this.$router 的相关方法。 1、push

「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)

我是研究僧i 提交于 2019-12-06 14:30:46
大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置。 其实前端这些框架的路由概念也是借鉴了后端路由框架的思想,让我们能像后端一样,进行路由规则化的配置。Vue的路由插件不仅是官方提供还有完善的文档,还有一个优势就是随着Vue版本同步更新。 安装路由插件( Vue Router) 你可以通过npm(npm install vue-router)或通过 Vue CLI 脚手架创建项目的时候进行选择安装。本节的示例,我们将在上节的例子基础上,通过 npm 的方式安装路由,我们将从基础的安装、配置讲起,然后在逐步的深入学习。 首先,我们通过控制台,将目录切换到当前项目的根目录,我们输入以下命令进行手动安装: npm install vue-router 接下来,完成安装后,我们需要对其进行配置,将路由映射到对应的组件上,我们在 src 文件夹中创建一个 router.js 的文件,然后添加以下内容: src/router.js 我们首先导入 Vue 本身和 Vue路由,因为路由是插件,必须在Vue对象中进行注册,这里我们使用 vue.use() 进行注册。 接下来,我们创建了一个Router实例,并进行了相关初始化的配置。这里你至少需要配置一个路由规则

vue-cli 4 安装与 新建项目 路由

為{幸葍}努か 提交于 2019-12-06 13:46:23
环境: windows: 10 vue-cli: 4 编辑器: vsCode npm: 6.11.3 #去nodejs网安装https://npm.taobao.org/mirrors/node/v12.12.0/node-v12.12.0-x64.msi 1.安装 : >npm install -g @vue/cli # 查看版本 PS D:\vue\project-3> vue -V @vue/cli 4.0.4 2.创建项目: 添加淘宝镜像: npm install -g cnpm --registry=https://registry.npm.taobao.org 创建项目 vue create project-3 #这里可以上下选择, 我们选 手动 Vue CLI v4.0.4 ? Please pick a preset: default (babel, eslint) > Manually select features # 然后根据自己的需求选组件 Vue CLI v4.0.4 ? Please pick a preset: Manually select features ? Check the features needed for your project: (*) Babel ( ) TypeScript ( ) Progressive Web App

三十分钟学会使用VUE搭建单页应用(SPA) 上

一曲冷凌霜 提交于 2019-12-06 12:36:26
三十分钟学会使用VUE搭建单页应用(SPA) 上 景行_白色极限 关注 12018.07.29 23:19:12字数 2,474阅读 22,578 今天我们将学习如何用VUE构建一个简单的单页应用(SPA) 如果没有其他特殊声明,此教程中的VUE全部指的是VUE2.X版本 预览 让我们先看看最终的的单页程序是什么样子的 成果 阅读本教程之前希望你能有如下的基础知识: VUE基础 如何创建VUE组件 如果你没有任何VUE或者VUE组件的知识,可以看我之前的文章 VueJS简明教程(一)之基本使用方法 使用Vue CLI 脚手架 我们将使用VUE提供的脚手架模块Vue CLI,它可以使我们构建的程序兼容ES5版本的浏览器。 NOTE: 当然这需要你在Node.js环境下进行开发,如果你还没有Node.js和NPM的基本知识,建议你花半个小时的时间配置好Node.js环境,相信我,很简单,百度随便一搜就出来一大把教程。 如何你还没有安装Vue CLI,你可以用下面的命令进行安装 npm install -g vue-cli NOTE: vue-cli已经有了3.0版本,改名为 @vue/cli, 但是当前vue-cli还是可以使用的,因为大部分用户还是在用vue-cli,所以本教程也继续使用vue-cli作为教学。 安装完Vue CLI,我们将通过下面的命令构建我们的VUE项目。 vue

VueRouter爬坑第三篇-嵌套路由

99封情书 提交于 2019-12-06 09:35:47
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建。 项目搭建的步骤和项目目录专门写了一篇文章: 点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境。 VueRouter系列文章链接    《VueRouter爬坑第一篇》-简单实践    《VueRouter爬坑第二篇》-动态路由    《VueRouter爬坑第三篇》-嵌套路由 阅读目录 一.前言-从需求出发 二.需求实现   1.菜单   2.产品列表   3.产品详情 三.主角-嵌套路由 四.总结 一.前言-从需求出发   假设我们有这样一个需求和界面布局:      左边是菜单区域,点击菜单栏的【产品】,右边内容区上面显示产品列表,点击某个产品名称下面显示产品详情。   emmmm,突然想想这个需求造的有点鸡肋,但是也是为了从一个问题出发好去理解接下来的内容。   仔细想一想,大致的思路如下:   1.菜单是公共内容,我们放入App.vue组件中实现逻辑和页面布局,点击菜单栏的菜单名称使用<router-link>和<router-view>去显示产品列表。   2.产品列表需要新建组件:Content.vue。该组件中编写产品列表的代码,点击产品名称展示产品详情使用<router-link>和<router-view>去显示产品详情。   3.产品详情需要新建组件

VUE路由原理

我的梦境 提交于 2019-12-06 05:45:58
1: hash 2: history 区别: 前者地址栏会带有#,后者没有,显得美观一点 路由原理:前段路由实现本质是监听URL的变化,然后匹配路由规则显示相应页面,并且无须刷新。 hash模式: a: 点击或浏览器历史跳转时,触发onhashchange事件,然后根据路由规则匹配显示相应页面(遍历路由表,装载相应组件到router-link); b: 手动刷新时,不会像服务器发送请求(不会触发onhashchange),触发onload事件,然后根据路由规则匹配显示相应页面; history模式: a:跳转时会调用history.pushState方法,根据to属性改变地址,并切换相应组件到router-link; b:浏览器历史操作(前进,后退),只会改变地址栏(页面内容不会变),不会切换组件,需要使用popstate方法来切换组件; c: 手动刷新,需要后端配合重定向,不然404 来源: https://www.cnblogs.com/guanm/p/11964600.html

当vue路由变化时,改变导航栏的样式

邮差的信 提交于 2019-12-06 05:20:23
当我们需要做一个类似顶部 或 底部导航栏公共组件的时候,单击某个导航栏按钮,跳转到另一个组件, 并且改变导航栏按钮的样式,如果用<router-link to=""><router-link/> 跳转的时候,我们可以这样做, 改变 router-link-active 的样式,它是路由path指向当前组件时系统自动生成的。 先看下效果: 贴上我的路由文件js export default new Router({ routes: [ { path:'/', component:common_nav, children:[ { path:'/html', component:html }, { path:'/js', component:js }, { path:'/css', component:css }, { path:'/img', component:img } ] }, ] }) 源码地址: https://github.com/ityadong/vue-router-link 转载请附地址:http://blog.csdn.net/u012302552/article/details/79246710 来源: CSDN 作者: ShiYadong_ 链接: https://blog.csdn.net/u012302552/article/details/79246710

基础路由的设置——使用vue-router实现导航切换

依然范特西╮ 提交于 2019-12-06 04:16:01
1.vue-router的安装。 命令行中进入项目所在文件位置【重要】,输入: npm install vue-router 安装完成后在项目文件中的package.json中可以看到vue-router的版本信息。 2.在 App.vue中 定义<router-link> 和 <router-view>     在vue-router中, 我们看到它定义了两个标签 <router-link> 和 <router-view> 分别对应点击和显示部分。     <router-link> 就是定义页面中点击的部分,<router-link> 还有一个非常重要的属性 to,定义点击之后,要到哪里去, 如:<router-link to=”/home”>Home</router-link>     <router-view> 定义显示部分,就是点击后,区配的内容显示在什么地方。 App.vue代码: < template > < div > < v-header :seller = "seller" > </ v-header > < div class = "tab border-1px" > < div class = "tab-item" > <!-- router-link 定义点击后导航到哪个路径下 --> < router-link to = "/goods" > 商品 </

Vue路由相关配置

半城伤御伤魂 提交于 2019-12-06 03:43:14
什么是路由?   1、在以前页面跳转使用的是超链接a标签或者js location.href, 而路由是跳转切换组件的跳转方式   2、路由就是监听url的改变并提供相对应的组件用于展示   3、vue-router官方提供的路由, 在vue中vue-router则为vue提供的url监听并提供组件展示的js, 也是vue全家桶中的最重要知识点之一 使用 第一步:引入   引入vue-router   <script></script>标签引入 第二步:创建展示的组件   let news = {     template:"<h1>这是新闻页面</h1>"   } 第三步:创建路由规则    {     //path为要监听的路径     path:"/",     //component为监听到url中是/则提供index这个组件用于展示     component:index   }, 第四步:把上面创建的路由对象添加到Vue实例中 //创建路由对象 let router = new VueRouter({routes})   new Vue({     el:"#app",   data:{},   router }) 第五步:在页面上添加标签<router-view></router-view>为路由渲染组件的容器 第六步:使用<router-link></router