vue系列_vue-Router入门和理解

一、路由的概念和名称

1、路由:就是根据不同的请求路径,跳转到不同的组件而已。

2、路由配置:设置哪些路径对应哪些组件,就是路由的核心。

3、谨记:Vue-Router也是个对象,在创建Vue-Router时,构造函数里需要传入路由配置,否则,路由对象Vue-Router如何进行路由

4、Vue-Router对象必须要放到Vue对象里,否则,Vue-Router没法用。即:在创建Vue对象时,需要把Vue-Router对象,作为Vue对象构造函数的配置传入。

二、使用路由的步骤:

1、路由配置:

           路由配置是个json数组。   

import addGoods from './addGoods';//引入组件:addGoods
import goodslist from './goodslist';//引入组件:goodslist

//路由配置:是个json数组,不同的路径对应不同的组件
const routeObjs = [
  {
     path: '/addGoods',    //请求的路径:根目录下的addGoods
     component:  addGoods    //组件名
   },
  {
     path: '/goodslist',    //请求的路径:根目录下的goodslist
     component:  goodslist    //组件名
   }
]

2、创建Vue-Router对象:  

               new对象时,把上面的配置要传入,否则,一个空空的Vue-Router对象,啥也干不了。即:Vue-Router对象就是根据路由配置来工作的。

const router = new VueRouter({
  routes:routeObjs //routeObjs就是上面的路由配置
})

3、把Vue-Router传入Vue对象

let vum = new Vue({
  el:"#app",
  router:router,//把路由对象传入到Vue对象里
  data:{
         ………………
  },
  methods:{
      …………………………
  }
})

4、路由跳转:

     路由跳转:就相当于超链接一样。

     1)、点击什么文字,跳转到哪个路径(相当于<a href=""></a>标签)

     <router-link to='/addGoods'>添加商品</router-link> //相当于<a href="/addGoods">添加商品</a>
    <router-link to='/gooslist'>商品列表</router-link>

     2)、跳转的组件在哪儿显示

    <router-view/>:表示组件显示的位置。

      超链接(a标签)跳转后,页面时显示在整个浏览器窗口的,但是,组件只是显示在<router-view/>标签所在的位置。即网页的某个地方。你知道iframe的话,就大概能够想通。

代码:

    <router-link to='/addGoods'>添加商品</router-link>
    <router-link to='/goodslist'>商品列表</router-link>
    <hr/>
    <router-view/>

三、完整代码:

轻量化一点(不用脚手架)

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<style type="text/css">
		html,body{
			height: 100%;
		}

		

	</style>
</head>
<body>
	<div id="app">
	    <router-link to='/addGoods'>添加商品</router-link>
    	<router-link to='/goodslist'>商品列表</router-link>
    	<hr/>
    	<router-view/>
	</div>
</body>
</html>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<script type="text/javascript">

// import addGoods from './addGoods';//引入组件:addGoods
// 定义组件(不引入了,直接定义)
let addGoods={
	data:function(){
		return {}
	},
	template:"<h1>添加商品</h1>",	
	created:function(){
		console.log(this.$router);//在任何组件里都能看的router对象。因为,把router对象放在vue对象里
		console.log(this.$router.options);//这是路由配置
        console.log(this.$route);//当前路由,就是路径
	}
}
// import goodslist from './goodslist';//引入组件:goodslist
//定义组件(不引入了,直接定义)
let goodslist={
	data:function(){
		return {}
	},
	template:"<h1>商品列表</h1>",	
	created:function(){
		console.log(this.$router);//在任何组件里都能看的router对象。因为,把router对象放在vue对象里
		console.log(this.$router.options);//这是路由配置
        console.log(this.$route);//当前路由,就是路径
	}
}

//路由配置:是个json数组,不同的路径对应不同的组件
const routeObjs = [
  {
     path: '/addGoods',    //请求的路径:根目录下的addGoods
     component:  addGoods    //组件名
   },
  {
     path: '/goodslist',    //请求的路径:根目录下的goodslist
     component:  goodslist    //组件名
   }
]

const router = new VueRouter({
  routes:routeObjs //routeObjs就是上面的路由配置
})

let vum = new Vue({
  el:"#app",
  router:router,//把路由对象传入到Vue对象里
  data:{
         // ………………
  },
  methods:{
      // …………………………
  }
})



</script>

四、效果

五、另外说一点

      由于,我们把vue-Router对象放入了vue对象里,所以,在任何组件里都可以通过以下代码看到,当前vue-Router对象以及路由配置:

        console.log(this.$router);//在任何组件里都能看的router对象。因为,把router对象放在vue对象里
        console.log(this.$router.options);//这是路由配置
        console.log(this.$route);//当前路由,就是路径

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值