11-vue路由/transtion动画效果

hash模式不利于SEO,因为搜索引擎对于#后面的内容(锚)点一般是不收录的

webpack打包public./和/或者/xxx/的区别 

路由参数传递:

如果想要拿到当前路由中的参数,平常我们都是通过this.$route去获取路由信息,取值

如果在路由中 /home/:id

在组件中使用:this.$routes.params.id 这样耦合度就比较高

第一种:传入布尔 - 我们通过传参的方式:在路由表中,添加props为true的属性,那么在当前这个路由对应的组件中通过props接收到了这个动态路由参数id的值


 动态路径+路由嵌套 路径是什么样子的? 2019是动态路由参数,test是子路由。需要在pageB组件中放入一个<router-view/>来盛放子路由,作为视图出口。

第二种:传入对象 - 对于不是动态路由的也可以设置props去传参,这里的props可以是一个对象,只要访问了这个路由,在这个组件中就可以通过props获取到路由传来的值

 第三种:函数方式 - 还可以使用函数模式: 同样,在组件中也可以通过props拿到传入的food这个值


 命名路由视图:

先看一下路由表结构:在父组件上开了俩出口,用以盛放子组件和孙子组件。

 父组件:

 子组件和孙子组件:


 全局导航守卫: 通常这里会做判断是否登录,判断localstroge里有没有token,如果没有让其重定向到登录页

 独享路由守卫:写在路由表中单独给某个路由去加

 组件内的守卫:写在组件中的钩子

 

 完整导航解析流程:

 第12步说的是这个:最早时候进去这个路由对应的组件之前会触发这个钩子,现在已经进去并完成了一系列的周期,最后就可以从这个钩子的回调函数next中拿到vue实例,可以做一些逻辑。


给路由起别名:

 /或alias 定义的名字都可以访问主页


 使用编程式导航时候三种写法:

第一种:

this.$router.push('/home/{$id}')

第一种变式:

this.$router.push({

  path:'/home/{$id}'

})

第二种: 在url中的形式是:/home/1

this.$router.push({

  name:'home',

  params:{

    id: '1'  

  }

}) 

第三种:  在url中形式是:/home?id=1

this.$router.push({

  path:'/home',

  query:{

    id : 1

  }

})

总结: name和parmas是一对,path和query是一对


 路由源信息:

我们可以为每个跳转的路由定义不同的title,只需要在每个路由上添加meta属性即可。

传送门


 路由切换动效:

如果只包裹一个路由:用<transtion></transtion>包裹即可

如果多个路由:

1.给每一个router-view设置一个key值

2.给transtion-group 设置 name

 3.上面设置的name属性要通过配合设置CSS(name默认就是router,所以给router设置的css)

 完整的结构:在切换home和about 两个路由的时候,他们的children 路由(有三个视图)children路由就是他们的内容,就会出现会有一种渐隐渐显的效果了。

 动态监听路由不一定每个页面都要设置动效:可以给指定路由设置

 这样只有路由中的有query,才会触发动效:<transition-group> 中的name 就代表的是router,我们设置的那些样式也是router什么什么的,现在name中我们是用了一个data里面的值,但如果你在url中输入还是要 = router


 

 

 

 

posted @ 2021-04-14 00:30  猎奇游渔  阅读(216)  评论(0编辑  收藏  举报