欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VUE - 路由的使用和重定向

程序员文章站 2022-03-25 08:51:25
...
什么是路由:
  • 后端路由: 对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源
  • 前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换

前端路由的后端路由的区分

后端路由:

当我们在浏览器中输入http://192.168.1.200:8899/index.html来访问界面的时候,web服务器就会接收到这个请求,然后把index.html解析出来,并找到相应的index.html并展示出来,这就是路由的分发

前端路由

通过改变URL,在不重新请求页面的情况下,更新页面视图。

PS:
后端路由每次访问一个页面都要向浏览器发送请求,然后服务端再响应解析,这个过程就会存在延迟,但是对于前端路径来说只是访问一个新的界面,只是浏览器的路径发生了改变,没有和服务器进行交互(所以不存在延迟)

路由的创建和使用:

在使用Vue路由之前,我们必须要载入Vue-router库

<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id="app">
	<h1>Hello App!</h1>
	<p>
	<!--通过router-link组件来导航-->
	<!--通过传入 to 属性指定链接-->
	<router-link to="/Foo"> Go To Foo</router-link>
	<router-link to="/Bar"> Go To Bar</router-link>
	</p>
	<!--路由出口,路由匹配到的组件将渲染在这里-->
	<router-view></router-view>
	
</div>

<script>
	//1.定义组件模板对象:
	var Foo ={
		template:'<h1>foo</h1>
}
	var Bar={
		template:'<h1>bar</h1>
}

//2.创建一个路由对象,当引入vue-router 包之后,在window全局对象中,就有了一个路由的构造函数,叫做vueRouter 在 new 鲈鱼对象的时候,可以为构造函数传递一个配置对象
	var routerObj=new VueRouter({
	routes:[
	//路由匹配规则: 每个路由规则,都是一个对象,这个规则身上必须有两个属性
	 //  属性1 是 path, 表示监听 哪个路由链接地址;
    //  属性2 是 component, 表示,如果 路由是前面匹配到的 path ,则展示 component 属性对应的那个组件
    // 注意: component 的属性值,必须是一个 组件的模板对象, 不能是 组件的引用名称;
	{path:'/foo',component:Foo},
	{path:'/bar',component:Bar}


]
})

  var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      router: routerObj
    });
</script>
路由的重定向和别名

为什么要进行重定向
VUE - 路由的使用和重定向
当我们没有为路由进行重定向的时候 默认进入网页的时候显示的是根路径。
然后我做了一个操作就是添加了一行代码:

{path:'/',component:login},
{path:'/login',component:login},
{path:'/register',component:register}


这样出现的问题就是 同样是login 会出现两个不同的地址,用户就会产生疑问?
最好的解决办法就是:路由重定向

var router=new VueRouter({
	routes:[
	{path:'/',redirect:'/login'},
	{path:'/login',component:login},
	{path:'/register',component:register}
]
})

PS: 重定向的目标也可以是一个命令的路由:

var router =new VueRouter(
{
	routes:[
	{path:'/',redirect:{name:'foo'}},
]
}
)
相关标签: ???? Vue框架