如何安装vue-router,vue-router使用步骤

  如何安装vue-router,vue-router使用步骤

  路由是网络工程中的一个技术术语,即通过互联将信息从源地址传递到目的地址的活动。本质上是一种对应关系。分为前端路由和后端路由。边肖将在下面的文章中给你详细介绍。感兴趣的朋友请和边肖一起学习。

  

目录

   1、前端路由实现原理2、vue-Router基本使用2.1、安装2.2、配置路由2.3、实例化2.4、挂载路由2.5、在页面上添加router-link和router-view3、路由器模式3.1、哈希模式3.2、历史模式4、路由器-link属性4.1、tag属性4.2、replace属性4.3、active-class5、vue-Router页面跳转模式5.1、路由器-link实现5.2、实现

  URL的请求地址对应服务器上的资源,根据不同的请求地址返回不同的资源。

  后端路由:

  在单页面应用中,根据用户触发的事件,在不刷新页面的情况下,改变URL,改变显示内容。

  

1、前端路由实现原理

  前端路由:

  当改变哈希值时,#是一个位置标识符,它可以在不刷新页面的情况下在页面内进行位置跳转。

  通过location.hash更改页面的哈希值,URL 的 hash 模式

  我们发现页面不会刷新。

  URL历史模式

  历史模式,如:

  History.pushState() //推入堆栈

  History.replaceState() //替换当前url,并且无法返回上一页

  History.back() //返回上一页

  history.go(n) //n的值可以大于0,表示向前几次,小于0,表示向后几次。

  History.forward() //向前一步

  History.go(-1)相当于history.back()

  History.go(1)等效于history.forward()

  有 5 种改变 url 而不刷新页面的方法,分别为:

  角度有变化

  React有ReactRouter

  e有Vue-路由器。

  

2、vue-Router 基本使用

  

2.1、安装

  npm安装vue-路由器-保存

  使用vue-router的前提是必须使用vue。

  前端三大框架,都有自己的路由:

  从“vue”导入Vue

  从“vue路由器”导入vue路由器

  Vue.use(VueRouter) //引用Vue路由器插件

  

2.2、配置路由

  //配置路由和组件之间的关系

  恒定路线=[

  {

  路径:“/”,

  //当访问“/”时,路由被重定向到新地址“/home”

  重定向:“/home”,

  },

  {

  路径:“/home”,

  成分:家,

  },

  {

  路径:“/login”,

  组件:登录,

  },

  ]

  

2.3、实例化

  const router=new VueRouter({

  Mode: history ,//设置模式

  路线

  });

  

2.4、挂载路由

  转到main.js,实例化vue,在vue上挂载路由器。

  let app=new Vue({

  埃尔: #app ,

  数据:{},

  //安装在vue上

  路由器,

  })

  

2.5、页面上添加 router-link 和 router-view

  !-添加路线-

  路由器链接到=/home 主页/路由器链接

  Router-link to=/about 关于/router-link

  !-显示路由内容-

  路由器-视图/

  默认情况下,路由器链接将呈现为标签在 router 文件夹内 index.js 引入vue-router

  路由器链接到=/home 主页/路由器链接

  //呈现为

  A= #/home rel=外部nofollow 主页/a

  路由器视图用于占据一个位置,显示到该位置的路由对应的组件。

  

3、router 的模式

  如:哈希和历史模式。

  

3.1、hash 模式

  默认情况下,Vue路由器使用哈希模式。

  hash的url中的锚点是#xx号之后的内容。通过使用锚点作为路由地址,我们通常会更改#号之后的内容,以便浏览器可以呈现指定的组件。当锚点改变时,onhashchange事件将被触发。

  

3.2、history 模式

  历史是没有#号的普通url,使用时需要服务器配置。在历史模式下,对应的方法与上述五种方法相同。

  路由模式有两种:vue-router

  const router=new VueRouter({

  模式:“历史”

  })

  

4、router-link的属性

  默认情况下,Router-link将呈现为一个A标记,但有时您可以将其呈现为另一个标记。

  

4.1、tag 属性

  tag属性用于设置路由器链接标签呈现类型,例如,如果我们想要将路由器链接呈现为按钮,中可以指定需要的模式:

  路由器链接到=/home tag= button 主页/路由器链接

  查看渲染后的元素,发现已经变成了按钮标签,对应的to添加的属性值会失效。此时你无法通过点击跳转到相应的内容,但是你可以继续阅读下面的跳转模式。

  除了button,tag的属性值可以是任何其他的tag,router-link自动渲染相应的tag。

  

4.2、replace 属性

  Replace对应上面历史模式中的replaceState,跳转时不会留下历史记录。如果指定了replace,则无法返回上一页。

  路由器链接到=/home 替换主页/路由器链接

  

4.3、active-class

  活动类别设置路由器链接单击当前选择的类别名称。默认情况下,类名为路由器链路活动。

  a href=#/ rel=外部nofollow

  aria-current=page

  class= router-link-exact-active router-link-active

  主页

  /a

  设置当前元素样式需要设置为:router-link-active。

  如:

  路由器-链接到=/active-class= active 主页/路由器-链接

  //router-link-active类名将被替换为active

  如果您需要将全局router-link的选择类名更改为用户自定义,单独设置它们会很麻烦,因此您可以在router中设置它们。

  const router=new VueRouter({

  路线,

  模式:“哈希”,

  LinkActiveClasss: active ///统一设置类名

  })

  

5、vue-Rrouter 页面跳转方式

  

5.1、router-link 实现

  //简单写一下

  路由器链接到=/主页/路由器链接

  //使用动态路径

  路由器链接:to= { path:/ } /路由器链接

  您可以使用路径或名称。

  //通过参数传递跳转1

  router-link :to=

  { name:home ,params:{ id:123 ,name:gq }}

  /路由器链接

  //通过参数传递跳转

  router-link :to=

  {路径:/,查询:{ id:123 ,名称: gq }}

  /路由器链接

  

5.2、通过 js 实现跳转

  //简单写一下

  这个。$router.push({ path:/ })

  //push与history.pushState相同

  //带参数跳转

  这个。$router.push({

  name: home ,params: { id:123 ,name:gq }

  })

  //带有多个参数

  这个。$router.push({

  姓名:家,

  params: { id:123 ,name:gq },

  查询:{ plan:private }

  })

  

6、动态路由

  在某些情况下,页面的路径path可能是不确定的,例如/user/123或/user/456。以下值是用户id或其他值。

  设置 active-class ,如:

  路由器:[

  {

  路径:“/user/:id”,

  组件:()={ import(./views/user.vue) }

  }

  ]

  配置路由

  路由器链接到=/user/123 用户:123/路由器链接

  路由器链接到=/user/456 用户:456/路由器链接

  //动态设置后面的id值

  router-link:to= /user/ id user:{ { id } }/router-link

  添加路由

  这个。$route.params.id

  这里的id是配置路由时设置的id,只要一致即可。

  获取后边动态值

  路由器-link to=/user?id=123 /路由器-链路

  //当取值时

  这个。$route.query.id

  另外,这个。$router.addRoutes([])也可以添加动态路由,内部传输一个数组,与Routes配置相同。

  

7、路由的懒加载

  懒加载是指用的时候再加载,不用的时候不加载。

  构建应用时,js包会变得非常大,影响加载速度。如果能把不同路由对应的组件分成不同的代码块,然后在访问路由时加载相应的组件,效率会更高。

  懒加载做了什么?主要功能是将路由对应的组件打包成一个js代码块。只有在访问路由时,才会加载相应的js。

  //直接引用

  从导入主页。/组件/主页

  常量路由=[

  {

  路径:“/home”,

  组件:主页

  }

  ]

  //惰性加载

  常量路由=[

  {

  路径:“/home”,

  component:()={ import(。/component/home) }

  }

  ]

  

8、嵌套路由

  实际上,它通常由多层嵌套组件组成。

  方式二:使用 query 进行传参

  实现步骤:创建相应的子组件,并在路由映射中配置相应的子路由。

  第一:组件内部使用路由器视图标签。

  {

  路径:“/body”,

  组件:()=导入( ./components/bodyLayout.vue ),

  儿童:[

  {

  路径:“经理”,

  组件:()=导入( ./components/blankView.vue ),

  儿童:[

  {

  路径:“用户”,

  组件:()=导入( ./views/manager/user . vue’)

  },

  ]

  },

  ]

  }

  当访问用户组件时,路径是:/body/manager/user

  注意:在为嵌套路由设置路径时,不能添加“/”,否则路由将被更改。

  {

  路径:“/用户”,

  组件:()=导入( ./views/manager/user . vue’)

  }

  //此时,访问路由变成了/user

  

9、router 与 route 区别

  尝试在main.js中打印router。$路由器,第二:在任何组件中

  我们发现这两个结果是相同的。这样我们就很容易理解下面的意思了。

  路由器是VueRouter的一个实例,它有自己的方法,比如new VueRouter创建的实例。如果想导航到不同的url,可以使用router.push,它是在跳转模式中引入的。

  Route是当前活动状态的route对象,包含当前路由的信息。通过这个对象,您可以获得路径、params参数、查询参数、名称、匹配和散列。

  

10、路由守卫

  为什么要用导航卫士?我们来考虑一个需求:在SPA应用中,网页的标题是如何随着页面切换而变化的?

  //添加相应的组件

  已创建(){

  Document.title= test

  }

  当访问该组件时,标题自动切换到Test。

  如果用上面的方法,我们开发的组件就要加多少,太麻烦了,只好用路由卫士统一修改,方便维护。

  

10.1、全局守卫

  打印结果如图:使用router.beforeEach注册一个全局前端保护,每当路由改变时,它都会通过。beforeEach接收的参数是一个函数,它包含三个参数。

  router.beforeEach((收件人,发件人,下一个)={

  //路由从从跳到

  //我们只需要给路由添加一个name属性。

  document.title=from.name

  下一个()

  })

  注意:上述三个参数的顺序不能改变。Next不能丢,必须添加,否则页面跳转时无法进入下一步,卡在空白区。

  1、使用router.afterEach注册全局后端保护。

  router.afterEach((收件人,发件人)={

  Console.log(后护板)

  })

  这两个守卫都是全局守卫,afterEach只在路由跳转完成后执行,所以不需要next。只有两个参数。

  

10.2、路由独享守卫

  直接定义在route上的guard的使用方法与全局guard相同,只是它被放在route对象之一中,并且只有这个route起作用。

  {

  路径:“/test”,

  名称:“测试”,

  组件:()=导入( ./views/manager/test.vue ),

  beforeEnter:(收件人,发件人,下一个)={

  Console.log(测试进入前)

  下一个()

  }

  }

  这些保护与全局预保护具有相同的方法参数。

  

10.3、组件内守卫

  路由和导航防护可以直接在路由组件中定义,在组件中定义的就是组件中的防护。

  const Foo={

  模板:` 1.`,

  beforeRouteEnter(收件人,发件人,下一个){

  //在确认呈现该组件的对应路径之前调用

  //没有!可以!获取组件实例` this。

  //因为在防护执行之前还没有创建组件实例。

  },

  beforeRouteUpdate(收件人,发件人,下一个){

  //当当前路由改变,但组件被多路复用时调用

  //比如对于一个带有动态参数的path /foo/:id,在/foo/1和/foo/2之间跳转时,

  //由于将呈现相同的Foo组件,组件实例将被重用。在这种情况下这个钩子将被调用。

  //可以访问组件实例` this。

  },

  beforeRouteLeave(收件人、发件人、下一个){

  //当导航离开此组件的相应路线时调用

  //可以访问组件实例` this。

  }

  }

  2、在离开路线时执行beforeRouteLeave。必须添加下一条,否则无法正常跳转到下一条路线。

  

11、keep-alive

  当路由切换时,每次都会重新呈现页面。我们有些组件会有一些数据需要保留,不想每次来回切换都要重新渲染,所以我们用keep-alive来包装组件,这样只有在第一次加载的时候才会执行created mounted之类的钩子函数。

  Keep-alive是Vue的一个内置组件,可以保持包含的组件处于状态或者避免重新渲染。

  div id=应用程序

  路由器链接到=/home home/路由器链接

  router-link to=/login 登录/router-link

  点火电极

  路由器视图/路由器视图

  /保持活力

  /div

  添加保活组件。切换时组件只会第一次渲染组件,进入后不会重新渲染。

  

11.1、keep-alive 特定方法

  已激活(){

  console.log(已激活)

  },

  停用(){

  console.log(停用)

  }

  这两个函数是有效的,只有当组件保持在状态并且使用了keep-alive时才会执行。

  注意:

  创建-安装-激活

  停用将不会触发,直到它退出。

  

11.2、keep-alive 属性

  keep-alive生命周期执行顺序:

  Include-string或正则表达式,只有当它与组件匹配时才会被缓存。

  Exclude-string或正则表达式,任何匹配的组件都不会被缓存。

  保持活动包括=test

  路由器视图/路由器视图

  /保持活力

  //测试组件添加名称属性

  模板

  差异

  试验

  /div

  /模板

  脚本

  导出默认值{

  名称:“测试”

  }

  脚本

  此时,只有测试组件会被缓存,其他组件都不会被缓存。

  如果有其他组件需要同时缓存,include可以添加多个值,用逗号分隔,但不能添加空格。

  保持活动包括=测试,用户

  路由器视图/路由器视图

  /保持活力

  keep-alive 有两个非常重要的属性:

  保持活动排除=测试,用户

  路由器视图/路由器视图

  /保持活力

  与上面的例子相反,只有两个组件test和user没有被缓存,其他的都被缓存了。

  以上就是本文关于vue-Router安装原理的详细过程。有关vue-Router的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: