路由跳转的两种方式及动态创建路由

跳转路由的方式,有两种
      1.声明导航
       1)  跳转
		    	router-link 是 vue -router提供的一个全局组件
		  	    router-link 实质上最终会渲染成一个a标签,to属性等价于 href属性(to不需要)
		   	   router-link 提供了声明导航高亮的功能(字典类名)
       2)  传参
       	 在router-link  上的to属性传值,方法如下:

     	
        (方式一)
	        to=/path?参数名 = 值
	     	 例:<router-link to="/about?name=小明"></router-link>
	        获取陆游的参数:
	        
	        this.$route.query.参数名
	        例:this.$route.query.name

        (方式二)
	        to="/path/值"(需要在路由规则里配置: /path/:参数名)
	        例: to="/path/小豆芽"
	        配置: path: "/about/:username"
	
	        获取参数
	        this.$route.params.参数名
	        例:this.$route.params.username
        
         2.编程式导航
	        用js代码来进行跳转
	        语法:path 或者name任选一个

        $router 和 $route 的区别
	          $router: 是路由的操作对象(比喻成路由器.装着所有的路由),跳转的时候用
	          $route: 是路由的信息对象(比喻成一个路由,存储这当前路由中的所有信息),获取路由参数的时候用


	          跳转的具体方式:  语法:  path 或者 name 人选一个
	            this.$router.push({name:"路由中配置的文件",query:{name="值"}})
	        
	          接收参数: 在对应的页面
	          let name_nex = this.$route.query.name
          
       	3.区别(重点!!!)

        跳转方式的区别:
       	   1.path和name的相同点: 都可以实现页面得切换(路由跳转)
                               都需要在路由中提前配置好.
                               声明式导航和编程式导航都可以使用
                        不同点:
                                path的值是会变得,例如: 动态路由/path/:username(路径)
                                name的值是不会变的,前缀不需要带 /,只是一个名字(字符串)
                            *** 使用path跳转路由时,path会忽略params(参数为undefined),所以path和params不能一起使用
                                推荐使用name和query的方式来实现路由跳转
        	  2.query和params的相同点:
                             都是路由传参的方式,声明式导航和编程式导航都可以使用
                        不同点:
                              query相当于get请求,编写方便.但是页面跳转的时候,参数显示在地址栏,存在安全隐患
                              params相当于post请求,需要配置动态路由(具体方式参考上面注释),参数不会显示在地址栏中,相对安全(相对于get和set安全,不完全安全)

总结:

1.什么是动态路由  

	1).配置路由:
	{
	path:"/path/:参数名",
	name:"name"
	}
	2).this.$route.params.参数名
	3)<router-link to="/path/值">今年初撒</router-link>

2.动态路由的作用是什么

	跳转页面,传递参数,改变path的内容

3.介绍一下router-link

	1)router-link  是vue-router提供的一个全局组件
	2)router-link 实质上最终会渲染成一个a标签   to属性 等价于href  (to属性不需要#)
	3)router-link  自己提供了高亮的功能(自带类名)
	4)router-link 中的tag属性 -- tag添加赋值为"空"不显示此内容  --- tag是用来改变标签的 默认渲染a标签
	 

4.介绍一下router-view
<router-view><router-view/>(命名视图)

<router-view/>(嵌套命名视图)

	是用来渲染通过路由映射过来的组件,当路径改变时,其中的内容可会随之改变

5.query传参的的方式及获取参数

   <router-link to="/path?参数名:值"></router-link>
      this.$route.query.参数名
      
7.params传参的方式及获取

      配置:{
        path:"/path/:参数名",
        name:"name",
        component:()=>improt{"路径"}
      }
      
	 <router-link to="/path/值"></router-link>
	 
      this.$route.params.参数名
      
9.分别描述声明式导航和编程式导航

声明式导航是通过router-link 中的to传参以及跳转组件

编程式导航是通过js代码封装成一个方法需要时调用即可(
	this.$router.push(name:"name",query:{ 参数名:值})
	使用this.$route.query.参数名获取
)

10.$router和$route的区别
 	   $router:是路由的操作对象(比喻成路由器,装着所有的路由),跳转的时候用
       $route:是路由的信息对象(比喻成一个路由,存储着当前路由的所有信息),获取路由参数的时候用

11. path和name跳转方式的相同和不同点
		   相同点:
                        都可以实现页面的切换(路由跳转)
                        都需要在路由中提前配置好。
                        声明式导航和编程式导航都可以使用
            不同点:
                        path的值是会变得,例如:动态路由/path/:username
                        name的值是不会变的,前缀不需要带 / ,只是一个名字(字符串)
                        使用path跳转路由时,path会忽略params(参数为undefined),所以path和params不能一起使用
                         推荐使用name和query的方式来 

12..query和params传参方式的相同和不同点
			 相同点:
                         都是路由传参的方式; 声明式导航和编程式导航中都可以使用
             不同点:
                        query相当于GET请求,编写方便。但页面跳转的时候,参数显示在地址栏,存在安全隐患   
                        params相当于POST请求,需要动态路由(具体方式参考上面注释),  参数不会显示在地址中,相对安全(但不完全安全)
                        
13.使用name 和 query
    	<router-link :to="{ name:'about',query:{name:'豆本豆'} }"> about</router-link> 
      使用name 和 params
		 <router-link :to="{ name:'about',params:{name:'豆本豆'} }"> about</router-link>
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态路由是指在Vue Router中,可以根据不同的参数值动态生成路由路径。通过动态路由,我们可以根据不同的参数值加载不同的组件或页面。在Vue Router中,我们可以使用冒号(:)来定义动态路由参数。例如,我们可以定义一个动态路由路径为`/user/:id`,其中`:id`表示一个动态的参数值。当用户访问`/user/1`时,Vue Router会根据参数值1加载相应的组件或页面。 路由守卫是指在Vue Router中,可以通过路由守卫来控制路由的访问权限和导航行为。Vue Router提供了三种类型的路由守卫:全局前置守卫、全局解析守卫和组件内的守卫。全局前置守卫会在路由切换之前被调用,可以用来进行权限验证或其他全局操作。全局解析守卫会在路由切换之前被调用,用来获取路由数据。组件内的守卫会在组件内部被调用,可以用来进行组件内部的权限验证或其他操作。 以下是一个示例代码,演示了如何使用动态路由路由守卫: ```javascript // 定义动态路由 const routes = [ { path: '/user/:id', component: User, meta: { requiresAuth: true // 设置需要登录才能访问的路由 } } ] // 创建路由实例 const router = new VueRouter({ routes }) // 全局前置守卫 router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated()) { next('/login') // 如果需要登录才能访问的路由没有登录,则跳转到登录页面 } else { next() // 否则继续路由切换 } }) // 组件内的守卫 export default { beforeRouteEnter (to, from, next) { // 在进入路由前调用,可以访问组件实例this if (this.$store.state.user.isAdmin) { next() // 如果是管理员,则继续路由切换 } else { next(false) // 否则取消路由切换 } } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值