![b1c3c8b608ee309e26035c1f59411b5e.gif](https://i-blog.csdnimg.cn/blog_migrate/87040ce6ad76a1b10bd63691aaeb22a5.gif)
点击蓝字关注我们
路由
在vue中,route,即为前端路由。下面是专业名词解释:
![aa8c078c02cd912b4bcd1f5069f6843f.png](https://i-blog.csdnimg.cn/blog_migrate/e555b6670572b89628d49b3594888168.png)
前端渲染和后端渲染
![a483a191a5526bb7a3f26790018e4b9e.png](https://i-blog.csdnimg.cn/blog_migrate/0b0aba95038fb43be13240f29b7e69f6.png)
![c179d653b2df476c6a5adaf3812d605e.png](https://i-blog.csdnimg.cn/blog_migrate/a7649ef3ac0b309ed687aa37d678d76d.png)
在使用route之前,我们需要知道一些基础知识:
![cd291c4d666a31150aab140bcd042724.png](https://i-blog.csdnimg.cn/blog_migrate/940f3891910715066ba73bc42c5927d0.png)
改变url不刷新页面:
使用hash值来进行变化route。
location.hash("路径")
![73a26623864a285a7b8adf8795493250.png](https://i-blog.csdnimg.cn/blog_migrate/e47d2cbaa5dccf8af63fb2c28879fb2c.png)
通过html对象修改url:
![bf1d7af2cccd732aa17b3a5681b26d68.png](https://i-blog.csdnimg.cn/blog_migrate/ed668fb7b5f187536a2a253084e0ba0b.png)
在该基础上,把urlpush进堆栈。然后使用back方法,弹出栈
![775fc7879ee4b6e2dd69584957f0e0b1.png](https://i-blog.csdnimg.cn/blog_migrate/0b281ea955a601cb6c4e7f0deb89aee6.png)
上面是用push方法,就是一直压栈和出栈,下面是用replace来进行代替当前站点,就不是栈方法:
![3d98d284bdf0d5ba2acdf3dd568782b1.png](https://i-blog.csdnimg.cn/blog_migrate/359cc800394976ae65c5c66e205604d7.png)
使用go来进行前后移动:
![804c4ae42ba3d60c80eb961c1849e5f0.png](https://i-blog.csdnimg.cn/blog_migrate/1736a96336e8f387b8e2738b537f8c09.png)
或者向前:
![bf3064a10c330e058d13abba0d468bb7.png](https://i-blog.csdnimg.cn/blog_migrate/a954785106738b4287d6afca134091cb.png)
![a6adafd93d6811bfb2aa3e7f1d9af040.png](https://i-blog.csdnimg.cn/blog_migrate/0b9dd27bb464ca7557f6005e479067a6.png)
vue-route的使用
![ad0136e09dab87d8cc0a805cb29cf15c.png](https://i-blog.csdnimg.cn/blog_migrate/a47a308adc3050d83dfe93cedff66daa.png)
![aa95a558990459195b19628c1c68e5ef.png](https://i-blog.csdnimg.cn/blog_migrate/2ee98ede888fb20714b8e9bc7933b437.png)
安装成功后,有在src下有route文件夹:
![2fb46e6003077fb249118e71e84c8156.png](https://i-blog.csdnimg.cn/blog_migrate/45c6856a26f4f424fc7a2504d6ab5f53.png)
创建组件
在compoments文件夹下面创建about.vue:
![c92421238757d7c5451b83ebe3ee6939.png](https://i-blog.csdnimg.cn/blog_migrate/545bff8406865f55ff95d12c649f5c81.png)
编写App.vue。创建两个标签,点击哪个,显示哪个页面,运行如下:
![2218f0233ae843c40d75c7a4518dc87e.gif](https://i-blog.csdnimg.cn/blog_migrate/e8ea41aba406194b91ab479441fea036.gif)
第一个页面加载[使用重定向方法]:
![2b5b2fa6f5d8f03c4e5be5f71d1de8c3.png](https://i-blog.csdnimg.cn/blog_migrate/d221ac189bed256e76302b1aa545372a.png)
效果:
![d3e3ad46dd0b76548f9a55990daea005.gif](https://i-blog.csdnimg.cn/blog_migrate/89cc86b672b652eaa23ae7772f6ac974.gif)
使用history模式来避免url地址中出现#,在route目录下的index.js中定义:
![d25149b4c1eb7dc9019501c6219900ca.png](https://i-blog.csdnimg.cn/blog_migrate/c9f0ec374d1e0e6898b564fed1aa5c03.png)
route的tag属性
将route-link标签变成button:
![40803a14e16381d100687e3529274329.png](https://i-blog.csdnimg.cn/blog_migrate/30d15b87ec8b9ecb2af462b86b45b3c1.png)
效果:
![322a0d7eaff59659b74fedb84003d43e.png](https://i-blog.csdnimg.cn/blog_migrate/b3ec17837a04668d233cbdf6b26953b4.png)
点击route,对应按钮变红色:
![86a63ff34edb04416cb4c7b37244a2d7.png](https://i-blog.csdnimg.cn/blog_migrate/fd5824bc53cc81c26918d3af75576914.png)
效果如下:
![b26a4311d08710eaf63db844d0ae56d1.gif](https://i-blog.csdnimg.cn/blog_migrate/ea898e17f0721a822342392057d5d39d.gif)
或者直接在route下面的index.js写:
![6f648141b99ca9fc21f4783380236a22.png](https://i-blog.csdnimg.cn/blog_migrate/02ad6335c44bf54ce58f6304fda18b03.png)
使用按钮替换route-link:
![db19a0f4f84308fe1cbb3697ff3089f4.png](https://i-blog.csdnimg.cn/blog_migrate/27a1b727c30998004887148d276b717f.png)
也就是说,使用写代码的方法,来变换组件视图,效果如下:
![b383e8bd4e6586faf5f69b9e3be63774.gif](https://i-blog.csdnimg.cn/blog_migrate/0a4f5c4f32b6000bf1ded853a351c2cb.gif)
动态路由的使用
什么是动态路由?假设我几个用户进入的页面参数是不一样的,那么此情况就是动态路由:
App.vue代码:
![0efa4c30e0ba2e6e9fb23ea96567dfcb.png](https://i-blog.csdnimg.cn/blog_migrate/f5aaa4fe979c7e675508d9e4edde02d6.png)
test.vue代码如下:
![d32c788bae03c4e708efa2dd81df516b.png](https://i-blog.csdnimg.cn/blog_migrate/ce9191ca4a4c4f5b66d8bdb9b51d4c3d.png)
目录一览:
![1342072f4b8a2d7db38b59fa156d0c48.png](https://i-blog.csdnimg.cn/blog_migrate/54f3f41c6322f01b64550bf100035c98.png)
从保存的cookie得知,账户为zhangsan,那么url显示张三:
![6c28bcc553a6505af89adf9d8cdc9600.gif](https://i-blog.csdnimg.cn/blog_migrate/1a85215220d61a1c5e549d6f8c1296b4.gif)
认识路由的懒加载
所谓懒加载,就是用到时再加载、
![49b60fb4bef62fe1adb6322b0af3e255.png](https://i-blog.csdnimg.cn/blog_migrate/ed2f4fb0935e9284d58b033a56338f9b.png)
使用例子:
![f7ee63868dc1cdd16f8ea73813f7e346.png](https://i-blog.csdnimg.cn/blog_migrate/4c840614c025c913247e05b4cde3803d.png)
完整使用:
![8240f976918bd4d731217a8d70e90510.png](https://i-blog.csdnimg.cn/blog_migrate/a6352f40b3f4afc345ec82503187feb7.png)
构建后,结果:
![5396e0d1406872af8605a7bc52766d22.png](https://i-blog.csdnimg.cn/blog_migrate/2e1d8b67a6003c946a470d350efd2cc0.png)
认识嵌套路由
![f94d534bfb2e0d4780d04a43d2a7fcf0.png](https://i-blog.csdnimg.cn/blog_migrate/69f84c098826e3adc530176fc7288496.png)
![864a836ee4de78591f22b12b60d6d3e3.png](https://i-blog.csdnimg.cn/blog_migrate/3b5d78faef8d507744b64f1f735864ce.png)
1.创建子组件test2.vue,导出为
![119cf756b63d8261a68dc60f39be1acf.png](https://i-blog.csdnimg.cn/blog_migrate/51c7a74969897ad8187570659cbaf2fe.png)
2.路由定义
![8240f976918bd4d731217a8d70e90510.png](https://i-blog.csdnimg.cn/blog_migrate/a6352f40b3f4afc345ec82503187feb7.png)
3.在about组件中使用子组件
![f5579bd781b8a4b3ffcfa11033d81d29.png](https://i-blog.csdnimg.cn/blog_migrate/ec0006671290f5f80975e76e9d9decda.png)
4.在app.vue中定义路由about
![5128b67c3d7f24b47abffea039add0db.png](https://i-blog.csdnimg.cn/blog_migrate/3bf2d719b98ba09be363823b2d5996e1.png)
5.运行结果
![f7a06901b8d76ac109f35062ae6c1270.gif](https://i-blog.csdnimg.cn/blog_migrate/bfa4b889cdddac808cfa0a95761a6904.gif)
球分享
球点赞
![35cb373c029bfe20c40659f6dd9881fe.gif](https://i-blog.csdnimg.cn/blog_migrate/d01ca8627cd71522b7de2e300a2f42b7.gif)
球在看