Vue路由

二级路由

不需要写/,vue会自动帮你拼接
@表示src文件夹的绝对路径.(常用与复杂项目构建时)
当需要写二级路由时,要在原先的vue界面加上一个视图容器<router-view>来承载组件.
 
 

嵌套路由:

一般工作中,到两级就够了,尽量不要超过三级,而<router-link>里的to属性一定要写端口号之后的完整路径.
 
 

命名视图.

可以用name属性给它一个新的名字.
<router-view name='abc'></router-view>
则需要在router.js里配置路由时,将原先的component改成components,并用name名和组件名对应的键值对形式放入路由配置.
 
 

编程式导航

之前用router-link写的导航叫声明式导航,
这样能让页面跳转到/detail
 
二者如何运用?
当页面中只是选项卡模式的部分切换,可以用router-link,如果是整个页面式的全覆盖,可以用编程式导航.
 
 
this.$router.push()的作用是把地址添在路由栈上.
this.$router.replace()的作用就是覆盖路由栈最上面的地址(在返回上一页时会生效)
this.$router.back()返回上一页
 
详见vue Router文档
 
 
 

重定向

redirect为重定向
router-link里exact active-class为精准匹配,完全相等才生效.
一般与之对应的会在路由里加上exact这个字段。
 
 
解决高亮样式:
①:
二级路由的重定向
{ path:'cn',components:{
                    abc:NewsCn
                }},
                { path:'en',components:{
                    def:NewsEn
                }},
                {path:'',redirect:'/news/cn'},
②:
并在news.vue里把router-link里的那个默认页面的to地址改为/
这样就保持着高亮样式的默认显示效果.
 
 
 

路由命名:

在路由里加名字,可以让编程式导航和声明式导航都可以去匹配指定名字的路由.
①:编程式导航
②:声明式导航
 
 

别名:

 
也是路由中的属性:alias
可用于路由跳转
这样就可以通过/dododo跳转到这个todolist界面了.
 
 

路由传参:

这样可以完成url地址的跟踪.
动态路由,常常用于列表页到详情页的动态传参.
在路由配置中,动态参数一定要加冒号,否则就变成了二级路由.
若跳转的路由有name名,则用下面这种方式
也可以完成动态传参
 
传多个参数:
有名字的:
无名字的:
在详情页如何接收动态参数?
 
PS:路由传参里
加上了props:true,则在详情页可以用下面这种方式接收
 
 
 

两种客户端的路由模式

hash和history模式:
mode='hash'
    缺点:URL中有一个#号,看上去不美观
    优点  :  部署到服务器上时,单页面应用程序被刷新时不会发生404
 
mode='history'
    优点:URL中没有#号
    缺点  :  部署到服务器上时,单页面应用程序被刷新时会发生404.
解决方法 : 让运维做重定向代理,做单页面应用程序,每次在客户端进行URL访问时,不论是什么路径,都让后端重定向到index.html。
 
目前市场用的最多的是Nginx服务器(静态资源)
#是路由的锚点
 
 
 

路由懒加载:

把当前用到的组件先加载,未被用到的组件不加载.
示例:
①:在引入模块时绑入箭头函数
②:写在routes里
 
 
Eg:
第一种:
第二种:
 
语法:
const Home = ()=>import('@/views/Home.vue');
作用:
应用程序中组件进行异步加载,节省应用程序初始化的性能.
结合Vue的异步组件和Webpack的代码分割功能,轻松实现路由组建的懒加载.
 
 
 
 
 
 
posted @ 2020-07-17 10:51  落木兮  阅读(166)  评论(0编辑  收藏  举报