vue-router路由入门

14 篇文章 0 订阅

vue-router
介绍:
是vue的一个插件,用来提供路由功能,vue官方的路由管理器
他与vue的核心深度集成,所以构建单页应用十分简单。

功能:
嵌套的路由
基于模块化的、基于组件的路由配置
路由参数、查询、通配符
HTML5中history和hash模式
自定义的滚动行为
基于vue过度系统的视图过渡效果
细粒度的导航控制
使用:
·安装
1.cdn

  <script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.4.3/vue-router.min.js"></script>

2.npm
npm install cue-router
如果在一个模块化工程中使用必须使用Vue.use()来明确的安装路由功能
import Vue from ‘vue’
import VueRouter from ‘vue-router’
Vue.use(VueRouter)
3.框架
·使用

  <router-view></router-view>

路由匹配的组件就要渲染在这里

<router-link></router-link>

使用他来进行导航 他会被渲染成一个标签
// 1.定义路由组件
let foo = {
template:<div>this is foo</div>
};
let bar = {
template:<div>this is bar</div>
};
// 2.定义路由

      var router = new VueRouter({
                routes:[
                    {path:"/foo",component:foo},
                    {path:"/bar",component:bar},
  ]
   })

//3.组件注册

var vm = new Vue({
    el:"#app",
    // data:{},
    // methods:{},
    router,
})

动态路由匹配
介绍
动态参数
组件复用
用户的组件
id:xxx
姓名:xxx
年龄:xxx
使用:
动态路径的参数使用":"开头

  //定义路由
        var router = new VueRouter({
            routes:[
                {path:"/foo",component:foo},
                {path:"/bar",component:bar},
                {path:"/user/:id",component:user},

            ]
        })
        //传参
        <router-link to="/user/1">跳转到user1</router-link>
        //接收参数
        let user={
            template:`
            <div>this is user{{$route.params}}</div>
            `
        };

当使用路由参数的时候,从/user/1/larry/18
导航到/user/2/terry/20的时候,那组件user实例就会复用,比起销毁在创建,复用显得更加高效
组件被复用,不会重新创建导致一个问题,生命周期钩子就不会被调用了,这时候我们只用watch来监测$route对象的变化。

 watch:{
        $route(to,from){
            console.log(to);
            console.log(from);
        }
             }

还可以通过导航守卫来监测 (to,from)
嵌套路由:

 <router-view></router-view>

组件中也可以使用来渲染高级路由匹配到的组件
我们需要在router的定义中使用children定义

   //定义组件
let user={
template:`
<div>this is user<br>
    ID:{{$route.params.id}}<hr>
    Name:{{$route.params.name}}<hr>
    Age:{{$route.params.age}}<hr>
    <div>嵌套的组件在👇<div>
    <router-view></router-view>
    </div>
`,
}
   //定义嵌套路由 
    children:[
        {path:'foo',component:foo},
        {path:"bar",component:bar},
    ]

使用

<router-link to="/user/3/tom/19/foo">user组件嵌套foo</router-link>
  <router-link to="/user/3/jack/21/bar">user组件嵌套bar</router-link>

命名路由:
介绍:
在配置路由的时候,我们可以指定name属性,相当于为这个路由进行命名,方便后期的路由跳转。
定义:

 var router = new VueRouter({
            routes:[
        {path:"/foo",name:"foo",component:foo},
        {path:"/bar",name:"bar",component:bar},
        {path:"/user/:id/:name/:age",name:"user",component:user},

               ]
              })

使用:

  <router-link :to="{name:'user',params:{id:9,name:'terry',age:22}}">使用name跳转到user2</router-link>
    要给<router-link></router-link>的to属性传递一个对象
    注意 :to="{name:'user',params:{id:9,name:'xxx'}}"

命名视图:
默认:

  <router-view></router-view>
    具名:
   <router-view name="a"></router-view>

我们想同时展示多个视图,那么一个不够用,name定义
重定向
介绍:
当用户访问/a,URL会被替换为/b,然后匹配/b对应的组件
定义:
通过redirect来定义
{path:"/a",name:“a”,redirect:"/b"},
{path:"/b",name:“b”,component:b},
{path:"/c",name:“c”,redirect:{name:“b”}},
使用:
重定向:访问/a,匹配到b的组件
重定向:使用name,访问/c,匹配到b的组件
别名:
介绍
/a的别名是/b,意味着用户访问/b的时候,路由匹配的组件/a,但是url还是保持/b
不论是访问/a还是访问/b,打开的组件都是一样的(a)
定义
alias关键字
var router = new VueRouter({
routes:[
{path:"/foo",name:“foo”,component:foo,alias:"/fdd"},
]
})
使用:

 <router-link to="/foo">跳转到foo</router-link>
             <router-link to="/fdd">跳转到fdd</router-link>

编程式导航:
定义:
除了 创建a标签定义导航连接之外,我们还可以使用router
的实例方法,通过编写代码来实现。
在vue实例中,我们可以通过$router访问路由实例
方法:
1.router.push(参数) 像history栈中添加一个新的记录
router.push(‘home’);//字符串
router.push({path:‘home’}) //传递对象
router.push({name:‘user’,params:{id:9}}) //命名路由,同时传递参数
router.push({path:‘url’,query:{plan:‘xxx’}})
//url?plan=xxx,当参数是path而不是name的时候,params不生效,只能通过query来传参
2.router.replace(参数) 不产生新的history记录,而是替换当前的history记录
方法与router.push(类似)
3.router.go(number)
参数是一个整数(1,2,-1,-2)
在history中前进或后退几步,类似于window.history.go(number)
路由模式有两种:
history模式与hash模式
介绍
默认情况:mode:“hash”
vue-router 默认使用的是hash模式,当url改变时,页面不会重新加载
hash模式url太难看,我们可以使用history模式
hash url:file:///D:/briup%20study/vue/day05/%E8%B7%AF%E7%94%B1.html
history url:http://127.0.0.1:5500/day05/%E8%B7%AF%E7%94%B1.html

使用history模式需要服务器支持,需要后台支持
使用
mode:“history”
导航守卫
介绍:
导航就是路由在发生改变,导航守卫就是用来通过跳转或取消的方式来守卫导航
种类
全局的
单个路由独享的 组件级的
1.全局前置守卫
router.beforeEach

导航守卫是异步解析的,在next调用之前,导航守卫一直处于等待的状态
next():一定要调用这个方法来结束这个钩子,如果不调用,那么导航无法跳转
next的几种状态和方法:
next("/path"):跳转到另外一个地址
next(error):导航就会被终止
2.全局解析守卫
router.beforeResolve
与前置守卫类似,区别是在导航被确认前,同时所在组件守卫和异步路由组件被
解析之后,解析守卫才会被调用

3.全局后置钩子
router.afterEach((to,form)=>{})
不会接收next(),也不会改变导航本身
4.路由独享守卫
直接定义在路由配置上的守卫
beforeEnter:(to,form,next)=>{
console.log(“foo路由独享守卫”)
}
参数和全局守卫的参数是一致的
5.组件内的守卫
beforeRouteEnter
beforeRouteUpdate
beforeRouteLeave
完整的导航解析流程:
导航被触发
在失活的组件内调用beforeRouteLeave守卫
调用全局前置beforeEach守卫
在重用的组件中调用beforeRouteUpdate守卫
在路由中的调用beforeEnter
解析组件
在激活的组件中调用
导航就被确认
调用全局后置钩子afterEach(to,from)
Dom更新
控制滚动行为

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot、Vue-Element-Admin和MyBatis是一种常见的技术组合,用于构建现代化的Web应用程序。下面是一个简要的入门教程。 1. 首先,我们需要设置Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/)来初始化一个基本的Spring Boot项目。在依赖项中添加Spring Web、Spring Data JPA和MyBatis等必要的依赖项。 2. 在Spring Boot项目中,我们需要创建实体类和数据库表的映射。使用JPA注解来定义实体类,并使用MyBatis注解来指定数据库表的映射。 3. 接下来,我们需要创建一个数据访问层(DAO)来处理与数据库的交互。使用MyBatis的注解或XML映射文件来定义SQL查询和操作。 4. 在Service层,编写业务逻辑代码来处理DAO返回的数据,并与其他组件进行交互。 5. 在Controller层,处理HTTP请求和响应,将数据传递给前端页面或接收前端发送的数据。使用Spring MVC注解来定义请求映射和参数解析。 6. 在前端方面,可以使用Vue-Element-Admin来构建用户界面。Vue是一种流行的JavaScript框架,用于构建灵活的单页面应用程序。Element-Admin是一个基于Vue的组件库,提供了丰富的UI组件和布局。 7. 在Vue-Element-Admin中,我们可以使用Vue Router来实现页面之间的导航和路由。使用axios来发送HTTP请求与后端进行数据交互。 8. 在Vue组件中,我们可以通过调用后端的API来获取数据并渲染到前端页面上。使用Element-Admin提供的布局和UI组件来美化页面。 通过上述步骤,我们可以实现一个基本的Spring Boot、Vue-Element-Admin和MyBatis的入门教程。这个教程可以帮助初学者了解如何搭建和使用这个技术组合来构建现代化的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值